diff --git a/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/chunafukuan/chunafukuanguanli/cashier.vue b/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/chunafukuan/chunafukuanguanli/cashier.vue index 9467f9c125..b041672495 100644 --- a/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/chunafukuan/chunafukuanguanli/cashier.vue +++ b/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/chunafukuan/chunafukuanguanli/cashier.vue @@ -578,8 +578,6 @@ export default { }) } else { this.formobj.payCode = '' - this.formobj.receiveBankAccount = '' - this.formobj.receiveBank = '' this.receiveBankAccount_list = [] } }, @@ -656,7 +654,7 @@ export default { this.formobj.receiveCompany = row.receiveCompany this.formobj.receiveBankAccount = row.receiveBankAccount this.formobj.receiveBank = row.receiveBank - this.changerRceiveCompany(this.formobj.receiveCompany) + this.formobj.payCode = row.payCode this.formobj.payWayValue = row.payWayValue this.changePayWay(row.payWayValue) const aa = [] @@ -689,8 +687,10 @@ export default { }, handlePayment() { if (this.formobj.payCode === '' || this.formobj.payCode === null || this.formobj.payCode === undefined) { - this.$message({ showClose: true, type: 'error', message: '请先刷新浏览器页面后再进行操作' }) - return + const choose = this.receiveCompany_list.filter((item) => item.name === this.formobj.receiveCompany) + if (choose !== null && choose.length > 0) { + this.formobj.payCode = choose[0].payCode + } } this.formobj.sids = this.sids this.submitdisabled = true @@ -709,8 +709,10 @@ export default { }, handlePass() { if (this.formobj.payCode === '' || this.formobj.payCode === null || this.formobj.payCode === undefined) { - this.$message({ showClose: true, type: 'error', message: '请先刷新浏览器页面后再进行操作' }) - return + const choose = this.receiveCompany_list.filter((item) => item.name === this.formobj.receiveCompany) + if (choose !== null && choose.length > 0) { + this.formobj.payCode = choose[0].payCode + } } this.formobj.sids = this.sids this.formobj.name = window.sessionStorage.getItem('name') diff --git a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow3/Flow3Service.java b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow3/Flow3Service.java index c86f378622..730cf2b86b 100644 --- a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow3/Flow3Service.java +++ b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow3/Flow3Service.java @@ -234,8 +234,10 @@ public class Flow3Service extends MybatisBaseService { nextUserSid = ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId(); adminContains = true; } else { - userSidForNextNode = listResultBean.getData(); - formVariables.put("approvers", listResultBean.getData()); + if(!listResultBean.getData().isEmpty()){ + userSidForNextNode = listResultBean.getData(); + formVariables.put("approvers", listResultBean.getData()); + } } } else { //若下一环节用户与系统管理员一致,则自动审批 @@ -279,6 +281,7 @@ public class Flow3Service extends MybatisBaseService { isMultiInstanceTaskNext = true; } else { + nextUserSid = userSidForNextNode.get(0); //查询下一环节用户是否有转办人 nextUserSid = change(nextUserSid, bv.getInstanceId()); taskService.setAssignee(task2.getId(), nextUserSid);//将下一环节用户放入流程中 @@ -296,6 +299,12 @@ public class Flow3Service extends MybatisBaseService { } + }else{//会签 + Task task2 = tasks.get(0); + vo.setTaskId(task2.getId()); + nodeState = task2.getName(); + taskDefKey = task2.getTaskDefinitionKey(); + } if (!isMultiInstanceTaskNext) { //获取该流程所有要走的环节节点 @@ -874,10 +883,19 @@ public class Flow3Service extends MybatisBaseService { if (sysUserVos == null || sysUserVos.size() < 1) { log.error("下一环节无用户填充管理员用户"); return rb; + }else{ + StringBuilder nextNodeUserSids = new StringBuilder(); + for (SysUserVo su : sysUserVos) { + nextNodeUserSids.append(su.getSid()).append(","); + } + //符合条件的用户的sid,拼接的字符串 + nextNodeUserSids_ = nextNodeUserSids.toString(); + nextNodeUserSids_ = nextNodeUserSids_.substring(0, nextNodeUserSids_.length() - 1); } } else { if (sysUserVos == null || sysUserVos.size() < 1) { - continue; +// continue; + nextNodeUserSids_ = ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId(); } else { StringBuilder nextNodeUserSids = new StringBuilder(); for (SysUserVo su : sysUserVos) { diff --git a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskMapper.java b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskMapper.java index b3686657e4..6dae632b30 100644 --- a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskMapper.java +++ b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskMapper.java @@ -31,6 +31,7 @@ public interface FlowTaskMapper extends BaseMapper { List> finishedList1(Map map); int finishedListCount(Map map); + int finishedListCountOA(Map map); /** * 根据流程实例的id查询最新的待办环节 diff --git a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskMapper.xml b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskMapper.xml index 6801a5a000..5ba94024db 100644 --- a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskMapper.xml +++ b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskMapper.xml @@ -200,6 +200,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + SELECT COUNT(*) + FROM ad_office_supplies_apply ae + left join oa_form ofm on ae.formSid = ofm.sid + WHERE ofm.nodeState != '待提交' + and find_in_set(oa.sid, #{list}) + + + + + + + + + + + + \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptanceapply/AdBeverageAcceptanceApplyService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptanceapply/AdBeverageAcceptanceApplyService.java new file mode 100644 index 0000000000..d682e9f914 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptanceapply/AdBeverageAcceptanceApplyService.java @@ -0,0 +1,343 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adbeverageacceptanceapply; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.oa.biz.adofficesuppliesdetail.AdOfficeSuppliesDetailService; +import com.yxt.anrui.oa.biz.adofficesuppliesdetail.AdOfficeSuppliesDetailVo; +import com.yxt.anrui.oa.biz.oaappendix.OaAppendixService; +import com.yxt.anrui.oa.biz.oaform.*; +import com.yxt.anrui.oa.biz.oaform.flowable.*; +import com.yxt.anrui.oa.feign.flowable.flow.ProcDefEnum; +import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationFeign; +import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationVo; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.core.result.ResultBean; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; + +@Service +public class AdBeverageAcceptanceApplyService extends MybatisBaseService { + + @Autowired + private OaAppendixService oaAppendixService; + @Autowired + private OaFormService oaFormService; + @Autowired + private AdOfficeSuppliesDetailService adOfficeSuppliesDetailService; + @Autowired + private SysOrganizationFeign sysOrganizationFeign; + + public ResultBean getSaveInit(String userSid, String orgPath) { + ResultBean rb = ResultBean.fireFail(); + AdBeverageAcceptanceApplyVo adOfficeSuppliesApplyVo = new AdBeverageAcceptanceApplyVo(); + adOfficeSuppliesApplyVo.setCreateBySid(userSid); + adOfficeSuppliesApplyVo.setOrgSidPath(orgPath); + return rb.success().setData(adOfficeSuppliesApplyVo); + } + + public ResultBean getUpdateInit(String sid) { + ResultBean rb = ResultBean.fireFail(); + AdBeverageAcceptanceApplyVo adOfficeSuppliesApplyVo = new AdBeverageAcceptanceApplyVo(); + AdBeverageAcceptanceApply adOfficeSuppliesApply = fetchBySid(sid); + if (adOfficeSuppliesApply == null) { + return rb.setMsg("该申请不存在"); + } + OaForm oaForm = oaFormService.fetchBySid(sid); + adOfficeSuppliesApplyVo.setTaskId(oaForm.getTaskId()); + adOfficeSuppliesApplyVo.setProcInsId(oaForm.getProcInstId()); + //根据部门sid获取orgPath并赋值 + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(oaForm.getDeptSid()).getData(); + String orgSidPath = organizationVo.getOrgSidPath(); + adOfficeSuppliesApplyVo.setOrgSidPath(orgSidPath); + adOfficeSuppliesApplyVo.setCreateBySid(oaForm.getCreateBySid()); + BeanUtil.copyProperties(adOfficeSuppliesApply, adOfficeSuppliesApplyVo); + List list = adOfficeSuppliesDetailService.getUpdateInit(sid); + list.removeAll(Collections.singleton(null)); + List officeObj = new ArrayList<>(); + if (!list.isEmpty()) { + for (AdOfficeSuppliesDetailVo d : list) { + FormCommon formCommon = new FormCommon(); + Map extra = new HashMap<>(); + formCommon.setId(d.getInventorySid()); + formCommon.setDictValue(d.getGoodsSpuName()); + if (StringUtils.isNotBlank(d.getCount())) { + extra.put("count",d.getCount()); + } + if (StringUtils.isNotBlank(d.getGoodsSkuOwnSpec())) { + extra.put("goodsSkuOwnSpec",d.getGoodsSkuOwnSpec()); + } + if (StringUtils.isNotBlank(d.getGoodsSkuSid())) { + extra.put("goodsSkuSid",d.getGoodsSkuSid()); + } + if (StringUtils.isNotBlank(d.getGoodsSpuSid())) { + extra.put("goodsSpuSid",d.getGoodsSpuSid()); + } + if (StringUtils.isNotBlank(d.getUnit())) { + extra.put("unit",d.getUnit()); + } + formCommon.setExtra(extra); + officeObj.add(formCommon); + } + } + adOfficeSuppliesApplyVo.setList(officeObj); + adOfficeSuppliesApplyVo.setSid(sid); + return rb.success().setData(adOfficeSuppliesApplyVo); + } + + public ResultBean saveOrUpdateDto(AdBeverageAcceptanceApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = dto.getSid(); + List list = dto.getList(); + if (StringUtils.isBlank(sid)) { + // 新建操作 + AdBeverageAcceptanceApply entity = new AdBeverageAcceptanceApply(); + BeanUtil.copyProperties(dto, entity, "sid"); + + dto.setBillNo("BGYPLY"); + dto.setSid(entity.getSid()); + ResultBean resultBean = oaFormService.saveOaForm(dto); + + if (!resultBean.getSuccess()) { + return rb; + } + + entity.setFormSid(resultBean.getData()); + baseMapper.insert(entity); + sid = entity.getSid(); + } else { + // 更新操作 + AdBeverageAcceptanceApply entity = fetchBySid(sid); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + baseMapper.updateById(entity); + } + adOfficeSuppliesDetailService.saveDetails(list, sid); + return rb.success().setData(sid); + } + + + public ResultBean delAll(String[] sids) { + ResultBean rb = ResultBean.fireFail(); + //查询该sid中是否有流程不是待提交的 + int count = baseMapper.selectBySid(StringUtils.join(sids, ",")); + if (count > 0) { + return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败"); + } + delBySids(sids); + return rb.success(); + } + + public ResultBean details(String sid, String application) { + ResultBean rb = ResultBean.fireFail(); + AdBeverageAcceptanceApplyDetailVo adOfficeSuppliesApplyDetailVo = baseMapper.details(sid); + if (adOfficeSuppliesApplyDetailVo == null) { + return rb.setMsg("该申请不存在"); + } + //基础字段赋值 + BeanUtil.copyProperties(oaFormService.getDetails(sid), adOfficeSuppliesApplyDetailVo); + List obj = new ArrayList<>(); + List detailVos = adOfficeSuppliesDetailService.getUpdateInit(sid); + if (!detailVos.isEmpty()) { + for (AdOfficeSuppliesDetailVo d : detailVos) { + FormCommon formCommon = new FormCommon(); + Map extra = new HashMap<>(); + formCommon.setId(d.getInventorySid()); + formCommon.setDictValue(d.getGoodsSpuName()); + if (StringUtils.isNotBlank(d.getCount())) { + extra.put("count",d.getCount()); + } + if (StringUtils.isNotBlank(d.getGoodsSkuOwnSpec())) { + extra.put("goodsSkuOwnSpec",d.getGoodsSkuOwnSpec()); + } + if (StringUtils.isNotBlank(d.getGoodsSkuSid())) { + extra.put("goodsSkuSid",d.getGoodsSkuSid()); + } + if (StringUtils.isNotBlank(d.getGoodsSpuSid())) { + extra.put("goodsSpuSid",d.getGoodsSpuSid()); + } + if (StringUtils.isNotBlank(d.getUnit())) { + extra.put("unit",d.getUnit()); + } + formCommon.setExtra(extra); + obj.add(formCommon); + } + } + adOfficeSuppliesApplyDetailVo.setList(obj); + return rb.success().setData(adOfficeSuppliesApplyDetailVo); + } + + /** + * 提交 + * + * @param dto + * @return + */ + public ResultBean submit(AdBeverageAcceptanceApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + ResultBean stringResultBean = saveOrUpdateDto(dto); + if (!stringResultBean.getSuccess()) { + return rb.setMsg(stringResultBean.getData()); + } + String businessSid = stringResultBean.getData(); + + SubmitDto submitDto = new SubmitDto(); + submitDto.setUserSid(dto.getCreateBySid()); + submitDto.setBusinessSid(businessSid); + + Map formVariables = new HashMap<>(); + formVariables = getMap(formVariables, businessSid); + submitDto.setFormVariables(formVariables); + submitDto.setProcDefId(ProcDefEnum.BGYPLYAPPLY.getProDefId()); + submitDto.setNextTaskId(dto.getTaskId()); + submitDto.setRule(OaFormRuleEnum.DIRECTLY_UNDER.getRule()); + return oaFormService.submit(submitDto); + } + + /** + * 办理(同意) + * + * @param dto + * @return + */ + public ResultBean complete(CompleteDto dto) { + Map formVariables = dto.getFormVariables(); + formVariables = getMap(formVariables, dto.getBusinessSid()); + dto.setFormVariables(formVariables); + BusinessVariablesDto businessVariablesDto = new BusinessVariablesDto(); + BeanUtil.copyProperties(dto, businessVariablesDto); + return oaFormService.complete(businessVariablesDto); + } + + /** + * 驳回 + * + * @param dto + * @return + */ + public ResultBean reject(TaskDto dto) { + Map formVariables = dto.getFormVariables(); + formVariables = getMap(formVariables, dto.getBusinessSid()); + dto.setFormVariables(formVariables); + return oaFormService.reject(dto); + } + + public ResultBean getFlowOperateTitle(NodeQuery query) { + // 默认失败返回 + ResultBean rb = ResultBean.fireFail(); + + // 获取next值和formVariables + int next = query.getNext(); + + // 获取并更新formVariables + Map formVariables = getMap(query.getFormVariables(), query.getBusinessSid()); + query.setFormVariables(formVariables); + + // 校验next参数是否有效(只允许0或1) + if (next != 0 && next != 1) { + return rb.setMsg("参数错误:next"); // 如果next不是0或1,返回错误信息 + } + + // 获取节点名称 + String data = getNodeName(query, next); + + // 如果data为null,表示未获取到有效的节点信息 + if (data == null) { + return rb.setMsg("没有获取到节点信息"); // 返回错误消息 + } + + // 返回成功的结果和获取到的节点名称 + return rb.success().setData(data); + } + + /** + * 网关参数组成 + * + * @param formVariables + * @param sid + * @return + */ + public Map getMap(Map formVariables, String sid) { + Map appMap = new HashMap<>(); + appMap.put("sid", sid); + /*appMap.put("editUrl", "approval/#/pages/EditOnboradingApplyActivity?sid=" + sid); + appMap.put("detailUrl", "approval/#/pages/DetailOnboradingApplyActivity?sid=" + sid); + appMap.put("flowOperateUrl", "oa/v1/HrHireApply/getFlowOperateTitle"); + appMap.put("agreeUrl", "oa/v1/HrHireApply/complete"); + appMap.put("stopUrl", "oa/v1/oaform/breakProcess"); + appMap.put("rejectUrl", "oa/v1/HrHireApply/reject"); + appMap.put("recallUrl", "oa/v1/oaform/revokeProcess"); + appMap.put("signUrl", "oa/v1/oaform/delegate"); + appMap.put("transferUrl", "oa/v1/oaform/assignTask");*/ + appMap.put(OaFormUrlEnum.HRHIREAPPLY_EDIT.getType(), OaFormUrlEnum.HRHIREAPPLY_EDIT.getUrl() + "?sid=" + sid); + appMap.put(OaFormUrlEnum.HRHIREAPPLY_DETAIL.getType(), OaFormUrlEnum.HRHIREAPPLY_DETAIL.getUrl() + "?sid=" + sid); + appMap.put(OaFormUrlEnum.HRHIREAPPLY_FLOWOPERATEURL.getType(), OaFormUrlEnum.HRHIREAPPLY_FLOWOPERATEURL.getUrl()); + appMap.put(OaFormUrlEnum.HRHIREAPPLY_AGREEURL.getType(), OaFormUrlEnum.HRHIREAPPLY_AGREEURL.getUrl()); + appMap.put(OaFormUrlEnum.STOPURL.getType(), OaFormUrlEnum.STOPURL.getUrl()); + appMap.put(OaFormUrlEnum.HRHIREAPPLY_REJECTURL.getType(), OaFormUrlEnum.HRHIREAPPLY_REJECTURL.getUrl()); + appMap.put(OaFormUrlEnum.RECALLURL.getType(), OaFormUrlEnum.RECALLURL.getUrl()); + appMap.put(OaFormUrlEnum.SIGNURL.getType(), OaFormUrlEnum.SIGNURL.getUrl()); + appMap.put(OaFormUrlEnum.TRANSFERURL.getType(), OaFormUrlEnum.TRANSFERURL.getUrl()); + formVariables.put("app", appMap); + //根据组织查询是否是分公司 + OaForm oaForm = oaFormService.fetchBySid(sid); + AdBeverageAcceptanceApply adOfficeSuppliesApply = fetchBySid(sid); + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(oaForm.getUseOrgSid()).getData(); + //是否是分公司 + formVariables.put("isTrue", sysOrganization.getIsDept() == 0); + return formVariables; + } + + /** + * 根据next的值获取前一个节点或下一个节点的名称。 + * + * @param query 包含查询所需参数的NodeQuery对象 + * @param next 参数,0表示上一环节,1表示下一环节 + * @return 节点名称,如果失败则返回null + */ + private String getNodeName(NodeQuery query, int next) { + // 根据next值选择相应的服务方法获取节点信息 + ResultBean> resultBean = (next == 0) + ? oaFormService.getPreviousNodesForReject(query) // 获取上一环节的节点 + : oaFormService.getNextNodesForSubmit(query); // 获取下一环节的节点 + // 如果服务调用成功 + if (resultBean.getSuccess()) { + // 清除结果列表中的null值,避免空节点 + resultBean.getData().removeAll(Collections.singleton(null)); + // 如果结果列表非空,返回第一个节点的名称 + if (!resultBean.getData().isEmpty()) { + return resultBean.getData().get(0).getName(); + } + } else { + // 如果服务调用失败,返回null + return null; + } + // 如果结果为空,返回null + return null; + } +} \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptanceapply/AdBeverageAcceptanceApplyVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptanceapply/AdBeverageAcceptanceApplyVo.java new file mode 100644 index 0000000000..779f1d9faa --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptanceapply/AdBeverageAcceptanceApplyVo.java @@ -0,0 +1,53 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adbeverageacceptanceapply; + +import com.yxt.anrui.oa.biz.oaform.FormCommon; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +@Data +public class AdBeverageAcceptanceApplyVo { + + private String sid; + /* private String userSid; + private String orgPath;*/ + private String orgSidPath; + private String createBySid; + + @ApiModelProperty("备注") + private String remarks; + private List list = new ArrayList<>(); + + private String taskId; + @ApiModelProperty("流程实例id") + private String procInsId; + +// private String testPage; +} diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptancedetail/AdBeverageAcceptanceDetail.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptancedetail/AdBeverageAcceptanceDetail.java new file mode 100644 index 0000000000..f4644abc5d --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptancedetail/AdBeverageAcceptanceDetail.java @@ -0,0 +1,77 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adbeverageacceptancedetail; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * Project: yxt-oa(认定人员)
+ * File: AdExpatriatesDetail.java
+ * Class: com.yxt.anrui.oa.api.adexpatriatesdetail.AdExpatriatesDetail
+ * Description: 驻外人员认定列表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2025-01-20 15:35:08
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "集团用酒领用申请列表", description = "集团用酒领用申请列表") +@TableName("ad_beverage_acceptance_detail") +public class AdBeverageAcceptanceDetail extends BaseEntity { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("申请sid") + private String mainSid; // 申请sid + @ApiModelProperty("物品基础信息Sid") + private String goodsSpuSid; // 物品基础信息Sid + @ApiModelProperty("商品名称") + private String goodsSpuName; // 商品名称 + @ApiModelProperty("物品Skusid") + private String goodsSkuSid; // 物品Skusid + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; // 规格型号 + @ApiModelProperty("计量单位") + private String unit; // 计量单位 + @ApiModelProperty("数量") + private BigDecimal count; // 库存数量 + @ApiModelProperty("库存sid") + private String inventorySid; // 库存sid + @ApiModelProperty("单价") + private BigDecimal price; // 单价 + @ApiModelProperty("合计金额") + private BigDecimal priceTotal; // 合计金额 + + +} diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptancedetail/AdBeverageAcceptanceDetailDto.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptancedetail/AdBeverageAcceptanceDetailDto.java new file mode 100644 index 0000000000..a2cdf53d09 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptancedetail/AdBeverageAcceptanceDetailDto.java @@ -0,0 +1,70 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adbeverageacceptancedetail; + + +import com.yxt.anrui.oa.biz.oaform.FormCommon; +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Project: yxt-oa(认定人员)
+ * File: AdExpatriatesDetailDto.java
+ * Class: com.yxt.anrui.oa.api.adexpatriatesdetail.AdExpatriatesDetailDto
+ * Description: 驻外人员认定列表 数据传输对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2025-01-20 15:35:08
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "驻外人员认定列表 数据传输对象", description = "驻外人员认定列表 数据传输对象") +public class AdBeverageAcceptanceDetailDto implements Dto { + + @ApiModelProperty("驻外人员") + private FormCommon expatriatesObj; + private String expatriatesKey; + private String expatriatesValue; + @ApiModelProperty("驻外人员部门") + private FormCommon deptObj; + private String deptKey; + private String deptValue; + @ApiModelProperty("驻外人员职位") + private FormCommon jobObj; + private String jobKey; + private String jobValue; + @ApiModelProperty("驻外人员家庭常住地址") + private String expatriatesHomeAddress; + @ApiModelProperty("驻外人员工作地址") + private String expatriatesWorkAddress; + @ApiModelProperty("驻外人员开始驻外时间") + private String expatriatesDate; +} \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptancedetail/AdBeverageAcceptanceDetailListDetailVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptancedetail/AdBeverageAcceptanceDetailListDetailVo.java new file mode 100644 index 0000000000..5260105860 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptancedetail/AdBeverageAcceptanceDetailListDetailVo.java @@ -0,0 +1,66 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adbeverageacceptancedetail; + + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Project: yxt-oa(认定人员)
+ * File: AdExpatriatesDetailVo.java
+ * Class: com.yxt.anrui.oa.api.adexpatriatesdetail.AdExpatriatesDetailVo
+ * Description: 驻外人员认定列表 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2025-01-20 15:35:08
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "驻外人员认定列表 视图数据对象", description = "驻外人员认定列表 视图数据对象") +public class AdBeverageAcceptanceDetailListDetailVo implements Vo { + + private String sid; + + @ApiModelProperty("驻外人员") + private String expatriatesValue; + @ApiModelProperty("驻外人员部门") + private String deptValue; + @ApiModelProperty("驻外人员职位") + private String jobValue; + @ApiModelProperty("驻外人员家庭常住地址") + private String expatriatesHomeAddress; + @ApiModelProperty("驻外人员工作地址") + private String expatriatesWorkAddress; + @ApiModelProperty("驻外人员开始驻外时间") + private String expatriatesDate; + +} diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptancedetail/AdBeverageAcceptanceDetailMapper.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptancedetail/AdBeverageAcceptanceDetailMapper.java new file mode 100644 index 0000000000..9daf747b59 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptancedetail/AdBeverageAcceptanceDetailMapper.java @@ -0,0 +1,41 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adbeverageacceptancedetail; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +@Mapper +public interface AdBeverageAcceptanceDetailMapper extends BaseMapper { + + @Select("select * from ad_office_supplies_detail where mainSid = #{mainSid}") + List selectByMainSid(String mainSid); + + List getUpdateInit(String sid); +} \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptancedetail/AdBeverageAcceptanceDetailMapper.xml b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptancedetail/AdBeverageAcceptanceDetailMapper.xml new file mode 100644 index 0000000000..f95347aa9b --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptancedetail/AdBeverageAcceptanceDetailMapper.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptancedetail/AdBeverageAcceptanceDetailService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptancedetail/AdBeverageAcceptanceDetailService.java new file mode 100644 index 0000000000..f65beae17e --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptancedetail/AdBeverageAcceptanceDetailService.java @@ -0,0 +1,87 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adbeverageacceptancedetail; + +import com.yxt.anrui.oa.biz.oaform.FormCommon; +import com.yxt.common.base.service.MybatisBaseService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +@Service +public class AdBeverageAcceptanceDetailService extends MybatisBaseService { + + public void saveDetails(List list, String sid) { + //根据sid查询明细并删除 + List list2 = baseMapper.selectByMainSid(sid); + list2.removeAll(Collections.singleton(null)); + if (!list2.isEmpty()) { + list2.stream().forEach(v -> { + deleteBySid(v.getSid()); + }); + } + list.removeAll(Collections.singleton(null)); + if (!list.isEmpty()) { + list.stream().forEach(f -> { + AdBeverageAcceptanceDetail detail = new AdBeverageAcceptanceDetail(); + detail.setMainSid(sid); + detail.setInventorySid(f.getId()); + detail.setGoodsSpuName(f.getDictValue()); + if (null != f.getExtra()) { + Map e = f.getExtra(); + for (Map.Entry entry : e.entrySet()) { + if (StringUtils.isNotBlank((String)entry.getValue())) { + if (entry.getKey().equals("count")) { + detail.setCount(new BigDecimal((String)entry.getValue())); + } + if (entry.getKey().equals("goodsSkuOwnSpec")) { + detail.setGoodsSkuOwnSpec((String)entry.getValue()); + } + if (entry.getKey().equals("goodsSkuSid")) { + detail.setGoodsSkuSid((String)entry.getValue()); + } + if (entry.getKey().equals("goodsSpuSid")) { + detail.setGoodsSpuSid((String)entry.getValue()); + } + if (entry.getKey().equals("unit")) { + detail.setUnit((String)entry.getValue()); + } + } + } + } + baseMapper.insert(detail); + }); + } + } + + public List getUpdateInit(String sid) { + return baseMapper.getUpdateInit(sid); + } +} \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptancedetail/AdBeverageAcceptanceDetailVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptancedetail/AdBeverageAcceptanceDetailVo.java new file mode 100644 index 0000000000..a6ecf52b7f --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adbeverageacceptancedetail/AdBeverageAcceptanceDetailVo.java @@ -0,0 +1,67 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adbeverageacceptancedetail; + + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Project: yxt-oa(认定人员)
+ * File: AdExpatriatesDetailVo.java
+ * Class: com.yxt.anrui.oa.api.adexpatriatesdetail.AdExpatriatesDetailVo
+ * Description: 驻外人员认定列表 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2025-01-20 15:35:08
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "驻外人员认定列表 视图数据对象", description = "驻外人员认定列表 视图数据对象") +public class AdBeverageAcceptanceDetailVo implements Vo { + + private String sid; + + @ApiModelProperty("物品基础信息Sid") + private String goodsSpuSid; // 物品基础信息Sid + @ApiModelProperty("商品名称") + private String goodsSpuName; // 商品名称 + @ApiModelProperty("物品Skusid") + private String goodsSkuSid; // 物品Skusid + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; // 规格型号 + @ApiModelProperty("计量单位") + private String unit; // 计量单位 + @ApiModelProperty("库存数量") + private String count; // 库存数量 + @ApiModelProperty("库存sid") + private String inventorySid; // 库存sid +} diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesapply/AdOfficeSuppliesApply.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesapply/AdOfficeSuppliesApply.java new file mode 100644 index 0000000000..d4e5033899 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesapply/AdOfficeSuppliesApply.java @@ -0,0 +1,44 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adofficesuppliesapply; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "办公用品领用", description = "办公用品领用") +@TableName("ad_office_supplies_apply") +public class AdOfficeSuppliesApply extends BaseEntity { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("基础表单sid") + private String formSid; // 基础表单sid + + +} diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesapply/AdOfficeSuppliesApplyDetailVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesapply/AdOfficeSuppliesApplyDetailVo.java new file mode 100644 index 0000000000..4fa2efec42 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesapply/AdOfficeSuppliesApplyDetailVo.java @@ -0,0 +1,23 @@ +package com.yxt.anrui.oa.biz.adofficesuppliesapply; + +import com.yxt.anrui.oa.biz.oaform.FormCommon; +import com.yxt.anrui.oa.biz.oaform.OaFormCommonVo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2025/1/21 + **/ +@Data +public class AdOfficeSuppliesApplyDetailVo extends OaFormCommonVo { + + @ApiModelProperty("备注") + private String remarks; + + private List list = new ArrayList<>(); +} diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesapply/AdOfficeSuppliesApplyDto.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesapply/AdOfficeSuppliesApplyDto.java new file mode 100644 index 0000000000..30b388d44e --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesapply/AdOfficeSuppliesApplyDto.java @@ -0,0 +1,59 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adofficesuppliesapply; + + +import com.yxt.anrui.oa.biz.oaform.FormCommon; +import com.yxt.anrui.oa.biz.oaform.OaFormDto; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * Project: oa(驻外人员认定申请)
+ * File: AdExpatriatesApplyDto.java
+ * Class: com.yxt.anrui.oa.api.adexpatriatesapply.AdExpatriatesApplyDto
+ * Description: 驻外人员认定申请 数据传输对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2025-01-16 15:22:53
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "驻外人员认定申请 数据传输对象", description = "驻外人员认定申请 数据传输对象") +public class AdOfficeSuppliesApplyDto extends OaFormDto { + + @ApiModelProperty("备注") + private String remarks; + + private List list = new ArrayList<>(); +} \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesapply/AdOfficeSuppliesApplyMapper.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesapply/AdOfficeSuppliesApplyMapper.java new file mode 100644 index 0000000000..9c2b991e10 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesapply/AdOfficeSuppliesApplyMapper.java @@ -0,0 +1,37 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adofficesuppliesapply; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AdOfficeSuppliesApplyMapper extends BaseMapper { + + int selectBySid(String join); + + AdOfficeSuppliesApplyDetailVo details(String sid); +} \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesapply/AdOfficeSuppliesApplyMapper.xml b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesapply/AdOfficeSuppliesApplyMapper.xml new file mode 100644 index 0000000000..687b436684 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesapply/AdOfficeSuppliesApplyMapper.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesapply/AdOfficeSuppliesApplyService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesapply/AdOfficeSuppliesApplyService.java new file mode 100644 index 0000000000..fcdebf7a22 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesapply/AdOfficeSuppliesApplyService.java @@ -0,0 +1,343 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adofficesuppliesapply; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.anrui.oa.biz.adofficesuppliesdetail.AdOfficeSuppliesDetailService; +import com.yxt.anrui.oa.biz.adofficesuppliesdetail.AdOfficeSuppliesDetailVo; +import com.yxt.anrui.oa.biz.oaappendix.OaAppendixService; +import com.yxt.anrui.oa.biz.oaform.*; +import com.yxt.anrui.oa.biz.oaform.flowable.*; +import com.yxt.anrui.oa.feign.flowable.flow.ProcDefEnum; +import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationFeign; +import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationVo; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.core.result.ResultBean; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; + +@Service +public class AdOfficeSuppliesApplyService extends MybatisBaseService { + + @Autowired + private OaAppendixService oaAppendixService; + @Autowired + private OaFormService oaFormService; + @Autowired + private AdOfficeSuppliesDetailService adOfficeSuppliesDetailService; + @Autowired + private SysOrganizationFeign sysOrganizationFeign; + + public ResultBean getSaveInit(String userSid, String orgPath) { + ResultBean rb = ResultBean.fireFail(); + AdOfficeSuppliesApplyVo adOfficeSuppliesApplyVo = new AdOfficeSuppliesApplyVo(); + adOfficeSuppliesApplyVo.setCreateBySid(userSid); + adOfficeSuppliesApplyVo.setOrgSidPath(orgPath); + return rb.success().setData(adOfficeSuppliesApplyVo); + } + + public ResultBean getUpdateInit(String sid) { + ResultBean rb = ResultBean.fireFail(); + AdOfficeSuppliesApplyVo adOfficeSuppliesApplyVo = new AdOfficeSuppliesApplyVo(); + AdOfficeSuppliesApply adOfficeSuppliesApply = fetchBySid(sid); + if (adOfficeSuppliesApply == null) { + return rb.setMsg("该申请不存在"); + } + OaForm oaForm = oaFormService.fetchBySid(sid); + adOfficeSuppliesApplyVo.setTaskId(oaForm.getTaskId()); + adOfficeSuppliesApplyVo.setProcInsId(oaForm.getProcInstId()); + //根据部门sid获取orgPath并赋值 + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(oaForm.getDeptSid()).getData(); + String orgSidPath = organizationVo.getOrgSidPath(); + adOfficeSuppliesApplyVo.setOrgSidPath(orgSidPath); + adOfficeSuppliesApplyVo.setCreateBySid(oaForm.getCreateBySid()); + BeanUtil.copyProperties(adOfficeSuppliesApply, adOfficeSuppliesApplyVo); + List list = adOfficeSuppliesDetailService.getUpdateInit(sid); + list.removeAll(Collections.singleton(null)); + List officeObj = new ArrayList<>(); + if (!list.isEmpty()) { + for (AdOfficeSuppliesDetailVo d : list) { + FormCommon formCommon = new FormCommon(); + Map extra = new HashMap<>(); + formCommon.setId(d.getInventorySid()); + formCommon.setDictValue(d.getGoodsSpuName()); + if (StringUtils.isNotBlank(d.getCount())) { + extra.put("count",d.getCount()); + } + if (StringUtils.isNotBlank(d.getGoodsSkuOwnSpec())) { + extra.put("goodsSkuOwnSpec",d.getGoodsSkuOwnSpec()); + } + if (StringUtils.isNotBlank(d.getGoodsSkuSid())) { + extra.put("goodsSkuSid",d.getGoodsSkuSid()); + } + if (StringUtils.isNotBlank(d.getGoodsSpuSid())) { + extra.put("goodsSpuSid",d.getGoodsSpuSid()); + } + if (StringUtils.isNotBlank(d.getUnit())) { + extra.put("unit",d.getUnit()); + } + formCommon.setExtra(extra); + officeObj.add(formCommon); + } + } + adOfficeSuppliesApplyVo.setList(officeObj); + adOfficeSuppliesApplyVo.setSid(sid); + return rb.success().setData(adOfficeSuppliesApplyVo); + } + + public ResultBean saveOrUpdateDto(AdOfficeSuppliesApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = dto.getSid(); + List list = dto.getList(); + if (StringUtils.isBlank(sid)) { + // 新建操作 + AdOfficeSuppliesApply entity = new AdOfficeSuppliesApply(); + BeanUtil.copyProperties(dto, entity, "sid"); + + dto.setBillNo("BGYPLY"); + dto.setSid(entity.getSid()); + ResultBean resultBean = oaFormService.saveOaForm(dto); + + if (!resultBean.getSuccess()) { + return rb; + } + + entity.setFormSid(resultBean.getData()); + baseMapper.insert(entity); + sid = entity.getSid(); + } else { + // 更新操作 + AdOfficeSuppliesApply entity = fetchBySid(sid); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + baseMapper.updateById(entity); + } + adOfficeSuppliesDetailService.saveDetails(list, sid); + return rb.success().setData(sid); + } + + + public ResultBean delAll(String[] sids) { + ResultBean rb = ResultBean.fireFail(); + //查询该sid中是否有流程不是待提交的 + int count = baseMapper.selectBySid(StringUtils.join(sids, ",")); + if (count > 0) { + return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败"); + } + delBySids(sids); + return rb.success(); + } + + public ResultBean details(String sid, String application) { + ResultBean rb = ResultBean.fireFail(); + AdOfficeSuppliesApplyDetailVo adOfficeSuppliesApplyDetailVo = baseMapper.details(sid); + if (adOfficeSuppliesApplyDetailVo == null) { + return rb.setMsg("该申请不存在"); + } + //基础字段赋值 + BeanUtil.copyProperties(oaFormService.getDetails(sid), adOfficeSuppliesApplyDetailVo); + List obj = new ArrayList<>(); + List detailVos = adOfficeSuppliesDetailService.getUpdateInit(sid); + if (!detailVos.isEmpty()) { + for (AdOfficeSuppliesDetailVo d : detailVos) { + FormCommon formCommon = new FormCommon(); + Map extra = new HashMap<>(); + formCommon.setId(d.getInventorySid()); + formCommon.setDictValue(d.getGoodsSpuName()); + if (StringUtils.isNotBlank(d.getCount())) { + extra.put("count",d.getCount()); + } + if (StringUtils.isNotBlank(d.getGoodsSkuOwnSpec())) { + extra.put("goodsSkuOwnSpec",d.getGoodsSkuOwnSpec()); + } + if (StringUtils.isNotBlank(d.getGoodsSkuSid())) { + extra.put("goodsSkuSid",d.getGoodsSkuSid()); + } + if (StringUtils.isNotBlank(d.getGoodsSpuSid())) { + extra.put("goodsSpuSid",d.getGoodsSpuSid()); + } + if (StringUtils.isNotBlank(d.getUnit())) { + extra.put("unit",d.getUnit()); + } + formCommon.setExtra(extra); + obj.add(formCommon); + } + } + adOfficeSuppliesApplyDetailVo.setList(obj); + return rb.success().setData(adOfficeSuppliesApplyDetailVo); + } + + /** + * 提交 + * + * @param dto + * @return + */ + public ResultBean submit(AdOfficeSuppliesApplyDto dto) { + ResultBean rb = ResultBean.fireFail(); + ResultBean stringResultBean = saveOrUpdateDto(dto); + if (!stringResultBean.getSuccess()) { + return rb.setMsg(stringResultBean.getData()); + } + String businessSid = stringResultBean.getData(); + + SubmitDto submitDto = new SubmitDto(); + submitDto.setUserSid(dto.getCreateBySid()); + submitDto.setBusinessSid(businessSid); + + Map formVariables = new HashMap<>(); + formVariables = getMap(formVariables, businessSid); + submitDto.setFormVariables(formVariables); + submitDto.setProcDefId(ProcDefEnum.BGYPLYAPPLY.getProDefId()); + submitDto.setNextTaskId(dto.getTaskId()); + submitDto.setRule(OaFormRuleEnum.DIRECTLY_UNDER.getRule()); + return oaFormService.submit(submitDto); + } + + /** + * 办理(同意) + * + * @param dto + * @return + */ + public ResultBean complete(CompleteDto dto) { + Map formVariables = dto.getFormVariables(); + formVariables = getMap(formVariables, dto.getBusinessSid()); + dto.setFormVariables(formVariables); + BusinessVariablesDto businessVariablesDto = new BusinessVariablesDto(); + BeanUtil.copyProperties(dto, businessVariablesDto); + return oaFormService.complete(businessVariablesDto); + } + + /** + * 驳回 + * + * @param dto + * @return + */ + public ResultBean reject(TaskDto dto) { + Map formVariables = dto.getFormVariables(); + formVariables = getMap(formVariables, dto.getBusinessSid()); + dto.setFormVariables(formVariables); + return oaFormService.reject(dto); + } + + public ResultBean getFlowOperateTitle(NodeQuery query) { + // 默认失败返回 + ResultBean rb = ResultBean.fireFail(); + + // 获取next值和formVariables + int next = query.getNext(); + + // 获取并更新formVariables + Map formVariables = getMap(query.getFormVariables(), query.getBusinessSid()); + query.setFormVariables(formVariables); + + // 校验next参数是否有效(只允许0或1) + if (next != 0 && next != 1) { + return rb.setMsg("参数错误:next"); // 如果next不是0或1,返回错误信息 + } + + // 获取节点名称 + String data = getNodeName(query, next); + + // 如果data为null,表示未获取到有效的节点信息 + if (data == null) { + return rb.setMsg("没有获取到节点信息"); // 返回错误消息 + } + + // 返回成功的结果和获取到的节点名称 + return rb.success().setData(data); + } + + /** + * 网关参数组成 + * + * @param formVariables + * @param sid + * @return + */ + public Map getMap(Map formVariables, String sid) { + Map appMap = new HashMap<>(); + appMap.put("sid", sid); + /*appMap.put("editUrl", "approval/#/pages/EditOnboradingApplyActivity?sid=" + sid); + appMap.put("detailUrl", "approval/#/pages/DetailOnboradingApplyActivity?sid=" + sid); + appMap.put("flowOperateUrl", "oa/v1/HrHireApply/getFlowOperateTitle"); + appMap.put("agreeUrl", "oa/v1/HrHireApply/complete"); + appMap.put("stopUrl", "oa/v1/oaform/breakProcess"); + appMap.put("rejectUrl", "oa/v1/HrHireApply/reject"); + appMap.put("recallUrl", "oa/v1/oaform/revokeProcess"); + appMap.put("signUrl", "oa/v1/oaform/delegate"); + appMap.put("transferUrl", "oa/v1/oaform/assignTask");*/ + appMap.put(OaFormUrlEnum.HRHIREAPPLY_EDIT.getType(), OaFormUrlEnum.HRHIREAPPLY_EDIT.getUrl() + "?sid=" + sid); + appMap.put(OaFormUrlEnum.HRHIREAPPLY_DETAIL.getType(), OaFormUrlEnum.HRHIREAPPLY_DETAIL.getUrl() + "?sid=" + sid); + appMap.put(OaFormUrlEnum.HRHIREAPPLY_FLOWOPERATEURL.getType(), OaFormUrlEnum.HRHIREAPPLY_FLOWOPERATEURL.getUrl()); + appMap.put(OaFormUrlEnum.HRHIREAPPLY_AGREEURL.getType(), OaFormUrlEnum.HRHIREAPPLY_AGREEURL.getUrl()); + appMap.put(OaFormUrlEnum.STOPURL.getType(), OaFormUrlEnum.STOPURL.getUrl()); + appMap.put(OaFormUrlEnum.HRHIREAPPLY_REJECTURL.getType(), OaFormUrlEnum.HRHIREAPPLY_REJECTURL.getUrl()); + appMap.put(OaFormUrlEnum.RECALLURL.getType(), OaFormUrlEnum.RECALLURL.getUrl()); + appMap.put(OaFormUrlEnum.SIGNURL.getType(), OaFormUrlEnum.SIGNURL.getUrl()); + appMap.put(OaFormUrlEnum.TRANSFERURL.getType(), OaFormUrlEnum.TRANSFERURL.getUrl()); + formVariables.put("app", appMap); + //根据组织查询是否是分公司 + OaForm oaForm = oaFormService.fetchBySid(sid); + AdOfficeSuppliesApply adOfficeSuppliesApply = fetchBySid(sid); + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(oaForm.getUseOrgSid()).getData(); + //是否是分公司 + formVariables.put("isTrue", sysOrganization.getIsDept() == 0); + return formVariables; + } + + /** + * 根据next的值获取前一个节点或下一个节点的名称。 + * + * @param query 包含查询所需参数的NodeQuery对象 + * @param next 参数,0表示上一环节,1表示下一环节 + * @return 节点名称,如果失败则返回null + */ + private String getNodeName(NodeQuery query, int next) { + // 根据next值选择相应的服务方法获取节点信息 + ResultBean> resultBean = (next == 0) + ? oaFormService.getPreviousNodesForReject(query) // 获取上一环节的节点 + : oaFormService.getNextNodesForSubmit(query); // 获取下一环节的节点 + // 如果服务调用成功 + if (resultBean.getSuccess()) { + // 清除结果列表中的null值,避免空节点 + resultBean.getData().removeAll(Collections.singleton(null)); + // 如果结果列表非空,返回第一个节点的名称 + if (!resultBean.getData().isEmpty()) { + return resultBean.getData().get(0).getName(); + } + } else { + // 如果服务调用失败,返回null + return null; + } + // 如果结果为空,返回null + return null; + } +} \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesapply/AdOfficeSuppliesApplyVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesapply/AdOfficeSuppliesApplyVo.java new file mode 100644 index 0000000000..d94d648470 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesapply/AdOfficeSuppliesApplyVo.java @@ -0,0 +1,53 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adofficesuppliesapply; + +import com.yxt.anrui.oa.biz.oaform.FormCommon; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +@Data +public class AdOfficeSuppliesApplyVo { + + private String sid; + /* private String userSid; + private String orgPath;*/ + private String orgSidPath; + private String createBySid; + + @ApiModelProperty("备注") + private String remarks; + private List list = new ArrayList<>(); + + private String taskId; + @ApiModelProperty("流程实例id") + private String procInsId; + +// private String testPage; +} diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesdetail/AdOfficeSuppliesDetail.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesdetail/AdOfficeSuppliesDetail.java new file mode 100644 index 0000000000..7e6a51e0d2 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesdetail/AdOfficeSuppliesDetail.java @@ -0,0 +1,73 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adofficesuppliesdetail; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * Project: yxt-oa(认定人员)
+ * File: AdExpatriatesDetail.java
+ * Class: com.yxt.anrui.oa.api.adexpatriatesdetail.AdExpatriatesDetail
+ * Description: 驻外人员认定列表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2025-01-20 15:35:08
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "办公用品领用列表", description = "办公用品领用列表") +@TableName("ad_office_supplies_detail") +public class AdOfficeSuppliesDetail extends BaseEntity { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("申请sid") + private String mainSid; // 申请sid + @ApiModelProperty("物品基础信息Sid") + private String goodsSpuSid; // 物品基础信息Sid + @ApiModelProperty("商品名称") + private String goodsSpuName; // 商品名称 + @ApiModelProperty("物品Skusid") + private String goodsSkuSid; // 物品Skusid + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; // 规格型号 + @ApiModelProperty("计量单位") + private String unit; // 计量单位 + @ApiModelProperty("数量") + private BigDecimal count; // 库存数量 + @ApiModelProperty("库存sid") + private String inventorySid; // 库存sid + + +} diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesdetail/AdOfficeSuppliesDetailDto.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesdetail/AdOfficeSuppliesDetailDto.java new file mode 100644 index 0000000000..b4ddf66f26 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesdetail/AdOfficeSuppliesDetailDto.java @@ -0,0 +1,70 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adofficesuppliesdetail; + + +import com.yxt.anrui.oa.biz.oaform.FormCommon; +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Project: yxt-oa(认定人员)
+ * File: AdExpatriatesDetailDto.java
+ * Class: com.yxt.anrui.oa.api.adexpatriatesdetail.AdExpatriatesDetailDto
+ * Description: 驻外人员认定列表 数据传输对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2025-01-20 15:35:08
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "驻外人员认定列表 数据传输对象", description = "驻外人员认定列表 数据传输对象") +public class AdOfficeSuppliesDetailDto implements Dto { + + @ApiModelProperty("驻外人员") + private FormCommon expatriatesObj; + private String expatriatesKey; + private String expatriatesValue; + @ApiModelProperty("驻外人员部门") + private FormCommon deptObj; + private String deptKey; + private String deptValue; + @ApiModelProperty("驻外人员职位") + private FormCommon jobObj; + private String jobKey; + private String jobValue; + @ApiModelProperty("驻外人员家庭常住地址") + private String expatriatesHomeAddress; + @ApiModelProperty("驻外人员工作地址") + private String expatriatesWorkAddress; + @ApiModelProperty("驻外人员开始驻外时间") + private String expatriatesDate; +} \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesdetail/AdOfficeSuppliesDetailMapper.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesdetail/AdOfficeSuppliesDetailMapper.java new file mode 100644 index 0000000000..c38e32aafa --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesdetail/AdOfficeSuppliesDetailMapper.java @@ -0,0 +1,41 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adofficesuppliesdetail; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +@Mapper +public interface AdOfficeSuppliesDetailMapper extends BaseMapper { + + @Select("select * from ad_office_supplies_detail where mainSid = #{mainSid}") + List selectByMainSid(String mainSid); + + List getUpdateInit(String sid); +} \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesdetail/AdOfficeSuppliesDetailMapper.xml b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesdetail/AdOfficeSuppliesDetailMapper.xml new file mode 100644 index 0000000000..f95347aa9b --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesdetail/AdOfficeSuppliesDetailMapper.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesdetail/AdOfficeSuppliesDetailService.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesdetail/AdOfficeSuppliesDetailService.java new file mode 100644 index 0000000000..97e63f5ac4 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesdetail/AdOfficeSuppliesDetailService.java @@ -0,0 +1,87 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adofficesuppliesdetail; + +import com.yxt.anrui.oa.biz.oaform.FormCommon; +import com.yxt.common.base.service.MybatisBaseService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +@Service +public class AdOfficeSuppliesDetailService extends MybatisBaseService { + + public void saveDetails(List list, String sid) { + //根据sid查询明细并删除 + List list2 = baseMapper.selectByMainSid(sid); + list2.removeAll(Collections.singleton(null)); + if (!list2.isEmpty()) { + list2.stream().forEach(v -> { + deleteBySid(v.getSid()); + }); + } + list.removeAll(Collections.singleton(null)); + if (!list.isEmpty()) { + list.stream().forEach(f -> { + AdOfficeSuppliesDetail detail = new AdOfficeSuppliesDetail(); + detail.setMainSid(sid); + detail.setInventorySid(f.getId()); + detail.setGoodsSpuName(f.getDictValue()); + if (null != f.getExtra()) { + Map e = f.getExtra(); + for (Map.Entry entry : e.entrySet()) { + if (StringUtils.isNotBlank((String)entry.getValue())) { + if (entry.getKey().equals("count")) { + detail.setCount(new BigDecimal((String)entry.getValue())); + } + if (entry.getKey().equals("goodsSkuOwnSpec")) { + detail.setGoodsSkuOwnSpec((String)entry.getValue()); + } + if (entry.getKey().equals("goodsSkuSid")) { + detail.setGoodsSkuSid((String)entry.getValue()); + } + if (entry.getKey().equals("goodsSpuSid")) { + detail.setGoodsSpuSid((String)entry.getValue()); + } + if (entry.getKey().equals("unit")) { + detail.setUnit((String)entry.getValue()); + } + } + } + } + baseMapper.insert(detail); + }); + } + } + + public List getUpdateInit(String sid) { + return baseMapper.getUpdateInit(sid); + } +} \ No newline at end of file diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesdetail/AdOfficeSuppliesDetailVo.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesdetail/AdOfficeSuppliesDetailVo.java new file mode 100644 index 0000000000..0754415071 --- /dev/null +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/biz/adofficesuppliesdetail/AdOfficeSuppliesDetailVo.java @@ -0,0 +1,67 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.oa.biz.adofficesuppliesdetail; + + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Project: yxt-oa(认定人员)
+ * File: AdExpatriatesDetailVo.java
+ * Class: com.yxt.anrui.oa.api.adexpatriatesdetail.AdExpatriatesDetailVo
+ * Description: 驻外人员认定列表 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2025-01-20 15:35:08
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "驻外人员认定列表 视图数据对象", description = "驻外人员认定列表 视图数据对象") +public class AdOfficeSuppliesDetailVo implements Vo { + + private String sid; + + @ApiModelProperty("物品基础信息Sid") + private String goodsSpuSid; // 物品基础信息Sid + @ApiModelProperty("商品名称") + private String goodsSpuName; // 商品名称 + @ApiModelProperty("物品Skusid") + private String goodsSkuSid; // 物品Skusid + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; // 规格型号 + @ApiModelProperty("计量单位") + private String unit; // 计量单位 + @ApiModelProperty("库存数量") + private String count; // 库存数量 + @ApiModelProperty("库存sid") + private String inventorySid; // 库存sid +} diff --git a/yxt-oa/src/main/java/com/yxt/anrui/oa/feign/flowable/flow/ProcDefEnum.java b/yxt-oa/src/main/java/com/yxt/anrui/oa/feign/flowable/flow/ProcDefEnum.java index 710a6ae67f..681b70dd3a 100644 --- a/yxt-oa/src/main/java/com/yxt/anrui/oa/feign/flowable/flow/ProcDefEnum.java +++ b/yxt-oa/src/main/java/com/yxt/anrui/oa/feign/flowable/flow/ProcDefEnum.java @@ -11,6 +11,7 @@ public enum ProcDefEnum { OAMENDAPPLY("补卡申请", "process_9suucr96:1:16072504"), HIHIREAPPLY("招聘需求", "process_zy0m4jrp:1:16802504"), GROUPSYSTEMAPPLY("集团制度", "process_6lnebpbi:1:16905004"), + BGYPLYAPPLY("办公用品领用", ""), ; diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsGoodsTagRest.java b/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsGoodsTagRest.java index 63556ea65f..3c3db72a36 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsGoodsTagRest.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsGoodsTagRest.java @@ -28,6 +28,14 @@ public class WmsGoodsTagRest { @Autowired private WmsGoodsTagService wmsWmsGoodsTagService; + @PostMapping("goodsTagList") + @ApiOperation("商品标签列表") + ResultBean> goodsTagList(@RequestBody PagerQuery pagerQuery) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = wmsWmsGoodsTagService.goodsTagList(pagerQuery); + return rb.success().setData(pv); + } + @PostMapping("goodsList") @ApiOperation("商品标签列表") ResultBean> goodsList(@RequestBody PagerQuery pagerQuery) { diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInitialDetailRest.java b/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInitialDetailRest.java index be4f7388bc..e8089cb019 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInitialDetailRest.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInitialDetailRest.java @@ -28,6 +28,7 @@ package com.yxt.wms.apiadmin.inventroy; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; +import com.yxt.wms.biz.inventory.wmsinitialdetail.WmsInitialDetail; import com.yxt.wms.biz.inventory.wmsinitialdetail.WmsInitialDetailQuery; import com.yxt.wms.biz.inventory.wmsinitialdetail.WmsInitialDetailService; import com.yxt.wms.biz.inventory.wmsinitialdetail.WmsInitialDetailVo; @@ -51,4 +52,13 @@ public class WmsInitialDetailRest { PagerVo pv = wmsInitialDetailService.listPageVo(pq); return rb.success().setData(pv); } + + @PostMapping("/selBySid") + @ResponseBody + @ApiOperation(value = "根据sid查询") + public ResultBean selBySid(@RequestParam("sid") String sid){ + ResultBean rb = ResultBean.fireFail(); + WmsInitialDetail wmsInitialDetail = wmsInitialDetailService.fetchBySid(sid); + return rb.success().setData(wmsInitialDetail); + } } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInitialRest.java b/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInitialRest.java index 7267049ed0..3697ac5aa0 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInitialRest.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInitialRest.java @@ -25,7 +25,6 @@ *********************************************************/ package com.yxt.wms.apiadmin.inventroy; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import com.yxt.common.core.result.ResultBean; import com.yxt.wms.biz.inventory.wmsinitial.ReturnExcelInfo; @@ -34,15 +33,13 @@ import com.yxt.wms.biz.inventory.wmsinitial.WmsInitialExcelInfo; import com.yxt.wms.biz.inventory.wmsinitial.WmsInitialService; import com.yxt.wms.biz.inventory.wmsinitialdetail.WmsInitialDetail; import com.yxt.wms.biz.inventory.wmsinitialdetail.WmsInitialDetailService; +import com.yxt.wms.biz.inventory.wmsinitialdetail.WmsInitialDetailVo; import com.yxt.wms.feign.base.basegoodspu.BaseGoodsSpuFeign; -import com.yxt.wms.feign.base.basegoodssku.BaseGoodsSkuDetailsVo; -import com.yxt.wms.feign.base.basegoodssku.BaseGoodsSkuFeign; import com.yxt.wms.feign.portal.sysorganization.SysOrganizationFeign; import com.yxt.wms.feign.portal.sysorganization.SysOrganizationVo; import com.yxt.wms.feign.portal.sysstafforg.SysStaffOrgFeign; import com.yxt.wms.feign.portal.sysuser.SysUserFeign; import com.yxt.wms.feign.portal.sysuser.SysUserVo; -import com.yxt.wms.utils.Rule; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; @@ -56,7 +53,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import javax.annotation.Resource; import java.io.IOException; import java.io.InputStream; import java.math.BigDecimal; @@ -81,8 +77,6 @@ public class WmsInitialRest { private WmsInitialService wmsInitialService; @Autowired private WmsInitialDetailService wmsInitialDetailService; - @Resource - private BaseGoodsSkuFeign baseGoodsSkuFeign; @PostMapping("/getExcelInfo") @ResponseBody @@ -144,78 +138,42 @@ public class WmsInitialRest { System.out.println("结果是--->" + resultList); try { for (WmsInitialExcelInfo wmsInitialExcelInfo : resultList) { - if ("是".equals(wmsInitialExcelInfo.getIsYwym())) { - int num = new BigDecimal(wmsInitialExcelInfo.getNum()).intValue(); - for (int i = 0; i < num; i++) { - WmsInitialDetail wmsInitialDetail = new WmsInitialDetail(); - wmsInitialDetail.setCreateBySid(userSid); - wmsInitialDetail.setBillSid(wmsInitial.getSid()); - wmsInitialDetail.setGoodsID(getGoodsId(wmsInitialExcelInfo.getGoodsSkuSid())); - wmsInitialDetail.setGoodsSpuSid(wmsInitialExcelInfo.getGoodsSpuSid()); - wmsInitialDetail.setGoodsSpuName(wmsInitialExcelInfo.getGoodsSpuName()); - wmsInitialDetail.setGoodsSkuSid(wmsInitialExcelInfo.getGoodsSkuSid()); - wmsInitialDetail.setGoodsSkuTitle(wmsInitialExcelInfo.getGoodsSkuTitle()); - wmsInitialDetail.setGoodsSkuCode(wmsInitialExcelInfo.getGoodsSkuCode()); - wmsInitialDetail.setGoodsSkuOwnSpec(wmsInitialExcelInfo.getGoodsSkuOwnSpec()); - wmsInitialDetail.setUnit(wmsInitialExcelInfo.getUnit()); - wmsInitialDetail.setNum(new BigDecimal("1")); - wmsInitialDetail.setBrandSid(wmsInitialExcelInfo.getBrandSid()); - wmsInitialDetail.setBrandName(wmsInitialExcelInfo.getBrandName()); - wmsInitialDetail.setManufacturerSid(wmsInitialExcelInfo.getManufacturerSid()); - wmsInitialDetail.setManufacturerName(wmsInitialExcelInfo.getManufacturerName()); - wmsInitialDetail.setSupplierName(wmsInitialExcelInfo.getSupplierName()); - wmsInitialDetail.setSaleGuidePrice(new BigDecimal(wmsInitialExcelInfo.getSaleGuidePrice())); - wmsInitialDetail.setInCost(new BigDecimal(wmsInitialExcelInfo.getInCost())); - wmsInitialDetail.setTaxRate(wmsInitialExcelInfo.getTaxRate()); - String firstInDate = ""; - if (isNumber(wmsInitialExcelInfo.getFirstInDate())) { - Date javaDate = new Date((long) ((Double.valueOf(wmsInitialExcelInfo.getFirstInDate()) - 25569) * 86400 * 1000)); - firstInDate = DateUtil.formatDate(javaDate); - } else { - firstInDate = wmsInitialExcelInfo.getFirstInDate(); - } - wmsInitialDetail.setFirstInDate(DateUtil.parseDate(firstInDate)); - wmsInitialDetail.setGoodsTypeSid(wmsInitialExcelInfo.getGoodsTypeSid()); - wmsInitialDetail.setGoodsTypeCode(wmsInitialExcelInfo.getGoodsTypeCode()); - wmsInitialDetail.setGoodsTypeName(wmsInitialExcelInfo.getGoodsTypeName()); - wmsInitialDetail.setIsYwym(1); - wmsInitialDetailService.save(wmsInitialDetail); - } + WmsInitialDetail wmsInitialDetail = new WmsInitialDetail(); + wmsInitialDetail.setCreateBySid(userSid); + wmsInitialDetail.setBillSid(wmsInitial.getSid()); + wmsInitialDetail.setGoodsSpuSid(wmsInitialExcelInfo.getGoodsSpuSid()); + wmsInitialDetail.setGoodsSpuName(wmsInitialExcelInfo.getGoodsSpuName()); + wmsInitialDetail.setGoodsSkuSid(wmsInitialExcelInfo.getGoodsSkuSid()); + wmsInitialDetail.setGoodsSkuTitle(wmsInitialExcelInfo.getGoodsSkuTitle()); + wmsInitialDetail.setGoodsSkuCode(wmsInitialExcelInfo.getGoodsSkuCode()); + wmsInitialDetail.setGoodsSkuOwnSpec(wmsInitialExcelInfo.getGoodsSkuOwnSpec()); + wmsInitialDetail.setUnit(wmsInitialExcelInfo.getUnit()); + wmsInitialDetail.setNum(new BigDecimal(wmsInitialExcelInfo.getNum())); + wmsInitialDetail.setBrandSid(wmsInitialExcelInfo.getBrandSid()); + wmsInitialDetail.setBrandName(wmsInitialExcelInfo.getBrandName()); + wmsInitialDetail.setManufacturerSid(wmsInitialExcelInfo.getManufacturerSid()); + wmsInitialDetail.setManufacturerName(wmsInitialExcelInfo.getManufacturerName()); + wmsInitialDetail.setSupplierName(wmsInitialExcelInfo.getSupplierName()); + wmsInitialDetail.setSaleGuidePrice(new BigDecimal(wmsInitialExcelInfo.getSaleGuidePrice())); + wmsInitialDetail.setInCost(new BigDecimal(wmsInitialExcelInfo.getInCost())); + wmsInitialDetail.setTaxRate(wmsInitialExcelInfo.getTaxRate()); + String firstInDate = ""; + if (isNumber(wmsInitialExcelInfo.getFirstInDate())) { + Date javaDate = new Date((long) ((Double.valueOf(wmsInitialExcelInfo.getFirstInDate()) - 25569) * 86400 * 1000)); + firstInDate = DateUtil.formatDate(javaDate); } else { - WmsInitialDetail wmsInitialDetail = new WmsInitialDetail(); - wmsInitialDetail.setCreateBySid(userSid); - wmsInitialDetail.setBillSid(wmsInitial.getSid()); - wmsInitialDetail.setGoodsID(getGoodsId(wmsInitialExcelInfo.getGoodsSkuSid())); - wmsInitialDetail.setGoodsSpuSid(wmsInitialExcelInfo.getGoodsSpuSid()); - wmsInitialDetail.setGoodsSpuName(wmsInitialExcelInfo.getGoodsSpuName()); - wmsInitialDetail.setGoodsSkuSid(wmsInitialExcelInfo.getGoodsSkuSid()); - wmsInitialDetail.setGoodsSkuTitle(wmsInitialExcelInfo.getGoodsSkuTitle()); - wmsInitialDetail.setGoodsSkuCode(wmsInitialExcelInfo.getGoodsSkuCode()); - wmsInitialDetail.setGoodsSkuOwnSpec(wmsInitialExcelInfo.getGoodsSkuOwnSpec()); - wmsInitialDetail.setUnit(wmsInitialExcelInfo.getUnit()); - wmsInitialDetail.setNum(new BigDecimal(wmsInitialExcelInfo.getNum())); - wmsInitialDetail.setBrandSid(wmsInitialExcelInfo.getBrandSid()); - wmsInitialDetail.setBrandName(wmsInitialExcelInfo.getBrandName()); - wmsInitialDetail.setManufacturerSid(wmsInitialExcelInfo.getManufacturerSid()); - wmsInitialDetail.setManufacturerName(wmsInitialExcelInfo.getManufacturerName()); - wmsInitialDetail.setSupplierName(wmsInitialExcelInfo.getSupplierName()); - wmsInitialDetail.setSaleGuidePrice(new BigDecimal(wmsInitialExcelInfo.getSaleGuidePrice())); - wmsInitialDetail.setInCost(new BigDecimal(wmsInitialExcelInfo.getInCost())); - wmsInitialDetail.setTaxRate(wmsInitialExcelInfo.getTaxRate()); - String firstInDate = ""; - if (isNumber(wmsInitialExcelInfo.getFirstInDate())) { - Date javaDate = new Date((long) ((Double.valueOf(wmsInitialExcelInfo.getFirstInDate()) - 25569) * 86400 * 1000)); - firstInDate = DateUtil.formatDate(javaDate); - } else { - firstInDate = wmsInitialExcelInfo.getFirstInDate(); - } - wmsInitialDetail.setFirstInDate(DateUtil.parseDate(firstInDate)); - wmsInitialDetail.setGoodsTypeSid(wmsInitialExcelInfo.getGoodsTypeSid()); - wmsInitialDetail.setGoodsTypeCode(wmsInitialExcelInfo.getGoodsTypeCode()); - wmsInitialDetail.setGoodsTypeName(wmsInitialExcelInfo.getGoodsTypeName()); + firstInDate = wmsInitialExcelInfo.getFirstInDate(); + } + wmsInitialDetail.setFirstInDate(DateUtil.parseDate(firstInDate)); + wmsInitialDetail.setGoodsTypeSid(wmsInitialExcelInfo.getGoodsTypeSid()); + wmsInitialDetail.setGoodsTypeCode(wmsInitialExcelInfo.getGoodsTypeCode()); + wmsInitialDetail.setGoodsTypeName(wmsInitialExcelInfo.getGoodsTypeName()); + if ("是".equals(wmsInitialExcelInfo.getIsYwym())){ + wmsInitialDetail.setIsYwym(1); + }else { wmsInitialDetail.setIsYwym(0); - wmsInitialDetailService.save(wmsInitialDetail); } + wmsInitialDetailService.save(wmsInitialDetail); } return ResultBean.fireSuccess().setMsg("数据导入成功"); } catch (Exception e) { @@ -227,7 +185,7 @@ public class WmsInitialRest { @PostMapping("/generateGoodsTag") @ResponseBody @ApiOperation(value = "生成商品标签") - public ResultBean generateGoodsTag(@RequestBody String[] sids){ + public ResultBean generateGoodsTag(@RequestBody String[] sids) { return wmsInitialDetailService.generateGoodsTag(sids); } @@ -582,28 +540,4 @@ public class WmsInitialRest { } return true; } - - /** - * 获取商品唯一的goodsID - * - * @param goodsSkuSid - * @return - */ - private String getGoodsId(String goodsSkuSid) { - String goodsId = ""; - ResultBean resultBean = baseGoodsSkuFeign.getDetails(goodsSkuSid); - if (resultBean.getSuccess()) { - BaseGoodsSkuDetailsVo baseGoodsSkuDetailsVo = resultBean.getData(); - goodsId = baseGoodsSkuDetailsVo.getGoodsCode(); - String date = DateUtil.format(DateUtil.date(), "yyyyMM"); - goodsId = goodsId + date; - String i = wmsInitialDetailService.selectNum(goodsId); - if (com.yxt.common.base.utils.StringUtils.isNotBlank(i)) { - goodsId = Rule.getBillNo(goodsId, Integer.valueOf(i).intValue()); - } else { - goodsId = Rule.getBillNo(goodsId, 0); - } - } - return goodsId; - } } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInventoryRest.java b/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInventoryRest.java index 702eef0ba2..d1ab4cc805 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInventoryRest.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInventoryRest.java @@ -154,6 +154,12 @@ public class WmsInventoryRest { } + @ApiOperation("保存商品库存") + @PostMapping("/saveWmsInventory") + ResultBean saveWmsInventory(@RequestBody WmsInventorySaveDto dto) { + return wmsInventoryService.saveWmsInventory(dto); + } + @ApiOperation("修改库存数量") @PostMapping("/updateInventoryCount") ResultBean updateInventoryCount(@RequestBody WmsUpdateCountQuery query) { @@ -296,6 +302,11 @@ public class WmsInventoryRest { return rb.success().setData(pv); } + @ApiOperation("根据商品ID查询库存数量") + @PostMapping("/selCountByGoodsID") + public ResultBean selCountByGoodsID(@RequestParam("goodsID") String goodsID){ + return wmsInventoryService.selCountByGoodsID(goodsID); + } //----------------------------- 报表 ----------------------------- @ApiOperation("滞销品查询") @PostMapping("/deadStockList") @@ -312,4 +323,15 @@ public class WmsInventoryRest { PagerVo pv = wmsInventoryService.inventoryStockList(pq); return rb.success().setData(pv); } + + //------------------------------ 行政类审批查询库存 --------------------------------------- + @ApiOperation("行政类审批查询库存") + @PostMapping("/oaInventoryList") + public ResultBean> oaInventoryList(@RequestParam("orgPath") String orgPath,@RequestParam("warehouseTypeValue") String warehouseTypeValue) { + ResultBean> rb = ResultBean.fireFail(); + List list = wmsInventoryService.oaInventoryList(orgPath,warehouseTypeValue); + return rb.success().setData(list); + } + + } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsShelfBillRest.java b/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsShelfBillRest.java index fb537ad874..6e7a035fce 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsShelfBillRest.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsShelfBillRest.java @@ -145,4 +145,10 @@ public class WmsShelfBillRest { public ResultBean print2(@RequestBody TagQuery query) { return wmsShelfBillService.print2(query); } + + @ApiOperation("期初上架商品打印") + @PostMapping("/print3") + public ResultBean print3(@RequestBody TagQuery query) { + return wmsShelfBillService.print3(query); + } } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagMapper.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagMapper.java index 047d35b277..99a3e4bb4f 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagMapper.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagMapper.java @@ -34,4 +34,6 @@ public interface WmsGoodsTagMapper extends BaseMapper { @Select("select * from wms_goods_tag where goodsID = #{oldGoodsId}") WmsGoodsTag selectByGoodsId(String oldGoodsId); + + IPage goodsTagList(IPage page,@Param(Constants.WRAPPER) QueryWrapper qw); } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagMapper.xml b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagMapper.xml index e02017496a..8a562cf11c 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagMapper.xml +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagMapper.xml @@ -21,7 +21,7 @@ WHEN '1' THEN '已完成' END AS state, - DATE_FORMAT(a.createTime, '%Y-%m-%d') as `time` + DATE_FORMAT(a.createTime, '%Y-%m-%d') as time FROM wms_receipt_bill AS a @@ -59,4 +59,18 @@ ${ew.sqlSegment} + + diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagService.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagService.java index a3c201eebb..f9380f3d79 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagService.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagService.java @@ -10,8 +10,6 @@ import com.yxt.common.base.utils.StringUtils; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; -import com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBill; -import com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBillVo; import com.yxt.wms.biz.inventory.wmsgoodstag.app.*; import com.yxt.wms.biz.inventory.wmsgoodstag.pageUtil.MyPagerUtil; import com.yxt.wms.biz.inventory.wmsgoodstag.pageUtil.MyPagerVo; @@ -19,8 +17,10 @@ import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBill; import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBillService; import com.yxt.wms.biz.inventory.wmsreceiptbilldetail.WmsReceiptBillDetail; import com.yxt.wms.biz.inventory.wmsreceiptbilldetail.WmsReceiptBillDetailService; +import com.yxt.wms.feign.portal.privilege.PrivilegeQuery; import com.yxt.wms.feign.portal.sysorganization.SysOrganizationFeign; import com.yxt.wms.feign.portal.sysorganization.SysOrganizationVo; +import com.yxt.wms.feign.portal.sysuser.SysUserFeign; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -42,11 +42,67 @@ public class WmsGoodsTagService extends MybatisBaseService goodsTagList(PagerQuery pagerQuery) { + GoodsTagListQuery query = pagerQuery.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + //========================================数据授权开始 + if (StringUtils.isNotBlank(query.getMenuSid())) { + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(query.getOrgPath()); + privilegeQuery.setMenuSid(query.getMenuSid()); + privilegeQuery.setUserSid(query.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = defaultIdReltBean.getData(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("s.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("s.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("s.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("s.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("t.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } + if (StringUtils.isNotBlank(query.getName())) { + qw.and(wrapper -> wrapper.like("t.goodsSkuTitle", query.getName()) + .or().like("t.goodsSkuCode", query.getName()) + ); + } + qw.orderByDesc("t.createTime"); + IPage page = PagerUtil.queryToPage(pagerQuery); + IPage pagging = baseMapper.goodsTagList(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + public MyPagerVo goodsList(PagerQuery pagerQuery) { GoodsTagListQuery query = pagerQuery.getParams(); QueryWrapper qw = new QueryWrapper<>(); diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinitialdetail/WmsInitialDetail.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinitialdetail/WmsInitialDetail.java index 3287d6c322..82d3891d87 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinitialdetail/WmsInitialDetail.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinitialdetail/WmsInitialDetail.java @@ -42,8 +42,6 @@ public class WmsInitialDetail extends BaseEntity { @ApiModelProperty("单据sid") private String billSid; // 单据sid - @ApiModelProperty("商品ID") - private String goodsID; @ApiModelProperty("商品spuSid") private String goodsSpuSid; // 商品spuSid @ApiModelProperty("商品spu名称") diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinitialdetail/WmsInitialDetailMapper.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinitialdetail/WmsInitialDetailMapper.java index fd86a554cc..cbeff898bf 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinitialdetail/WmsInitialDetailMapper.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinitialdetail/WmsInitialDetailMapper.java @@ -31,6 +31,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.toolkit.Constants; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; @Mapper diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinitialdetail/WmsInitialDetailService.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinitialdetail/WmsInitialDetailService.java index 1ae1ad0ea5..2a56ae8276 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinitialdetail/WmsInitialDetailService.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinitialdetail/WmsInitialDetailService.java @@ -25,7 +25,6 @@ *********************************************************/ package com.yxt.wms.biz.inventory.wmsinitialdetail; -import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.yxt.common.base.service.MybatisBaseService; @@ -35,106 +34,169 @@ import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import com.yxt.wms.biz.inventory.wmsgoodstag.WmsGoodsTag; import com.yxt.wms.biz.inventory.wmsgoodstag.WmsGoodsTagService; +import com.yxt.wms.biz.inventory.wmsgoodstag.util.GetSerialNum; import com.yxt.wms.feign.portal.privilege.PrivilegeQuery; import com.yxt.wms.feign.portal.sysuser.SysUserFeign; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; - import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.*; @Service public class WmsInitialDetailService extends MybatisBaseService { - @Autowired - private SysUserFeign sysUserFeign; - @Autowired - private WmsGoodsTagService wmsGoodsTagService; + @Autowired + private SysUserFeign sysUserFeign; + @Autowired + private WmsGoodsTagService wmsGoodsTagService; - public PagerVo listPageVo(PagerQuery pq) { - WmsInitialDetailQuery query = pq.getParams(); - QueryWrapper qw = new QueryWrapper<>(); - //========================================数据授权开始 - if (StringUtils.isNotBlank(query.getMenuUrl()) || StringUtils.isNotBlank(query.getMenuSid())) { - PrivilegeQuery privilegeQuery = new PrivilegeQuery(); - privilegeQuery.setOrgPath(query.getOrgPath()); - privilegeQuery.setMenuUrl(query.getMenuUrl()); - privilegeQuery.setMenuSid(query.getMenuSid()); - privilegeQuery.setUserSid(query.getUserSid()); - ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); - if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { - //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) - String orgSidPath = query.getOrgPath(); - orgSidPath = orgSidPath + "/"; - int i1 = orgSidPath.indexOf("/"); - int i2 = orgSidPath.indexOf("/", i1 + 1); - int i3 = orgSidPath.indexOf("/", i2 + 1); - int i4 = orgSidPath.indexOf("/", i3 + 1); - String orgLevelKey = defaultIdReltBean.getData(); - if ("1".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i1); - qw.like("s.orgSidPath", orgSidPath); - } else if ("2".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i2); - qw.like("s.orgSidPath", orgSidPath); - } else if ("3".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i3); - qw.like("s.orgSidPath", orgSidPath); - } else if ("4".equals(orgLevelKey)) { - orgSidPath = orgSidPath.substring(0, i4); - qw.like("s.orgSidPath", orgSidPath); - } else if ("5".equals(orgLevelKey)) { - qw.eq("wi.createBySid", query.getUserSid()); - } else { - PagerVo p = new PagerVo<>(); - return p; - } - } else { - PagerVo p = new PagerVo<>(); - return p; - } - } - if (StringUtils.isNotBlank(query.getGoodsSpuName())) { - qw.like("wid.goodsSpuName", query.getGoodsSpuName()); - } - if (StringUtils.isNotBlank(query.getGoodsSkuCode())) { - qw.like("wid.goodsSkuCode", query.getGoodsSkuCode()); - } - if (StringUtils.isNotBlank(query.getGoodsTypeName())) { - qw.like("wid.goodsTypeName", query.getGoodsTypeName()); - } - IPage page = PagerUtil.queryToPage(pq); - IPage pagging = baseMapper.selectPageVo(page, qw); - PagerVo p = PagerUtil.pageToVo(pagging, null); - return p; - } + public PagerVo listPageVo(PagerQuery pq) { + WmsInitialDetailQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + //========================================数据授权开始 + if (StringUtils.isNotBlank(query.getMenuUrl()) || StringUtils.isNotBlank(query.getMenuSid())) { + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(query.getOrgPath()); + privilegeQuery.setMenuUrl(query.getMenuUrl()); + privilegeQuery.setMenuSid(query.getMenuSid()); + privilegeQuery.setUserSid(query.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = defaultIdReltBean.getData(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("s.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("s.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("s.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("s.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("wi.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } + if (StringUtils.isNotBlank(query.getGoodsSpuName())) { + qw.like("wid.goodsSpuName", query.getGoodsSpuName()); + } + if (StringUtils.isNotBlank(query.getGoodsSkuCode())) { + qw.like("wid.goodsSkuCode", query.getGoodsSkuCode()); + } + if (StringUtils.isNotBlank(query.getGoodsTypeName())) { + qw.like("wid.goodsTypeName", query.getGoodsTypeName()); + } + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPageVo(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } - public String selectNum(String goodsId) { - return baseMapper.selectNum(goodsId); - } + public String selectNum(String goodsId) { + return baseMapper.selectNum(goodsId); + } - public ResultBean generateGoodsTag(String[] sids) { - ResultBean rb = ResultBean.fireFail(); - for (String sid : sids) { - WmsInitialDetail wmsInitialDetail = fetchBySid(sid); - //新增标签 - WmsGoodsTag wmsGoodsTag = new WmsGoodsTag(); - wmsGoodsTag.setState(0); - wmsGoodsTag.setCreateBySid(wmsInitialDetail.getCreateBySid()); - wmsGoodsTag.setBillSid(wmsInitialDetail.getBillSid()); - wmsGoodsTag.setBillDetailSid(sid); - wmsGoodsTag.setGoodsID(wmsInitialDetail.getGoodsID()); - wmsGoodsTag.setGoodsSpuSid(wmsInitialDetail.getGoodsSpuSid()); - wmsGoodsTag.setGoodsSpuName(wmsInitialDetail.getGoodsSpuName()); - wmsGoodsTag.setGoodsSkuSid(wmsInitialDetail.getGoodsSkuSid()); - wmsGoodsTag.setGoodsSkuTitle(wmsInitialDetail.getGoodsSkuTitle()); - wmsGoodsTag.setGoodsSkuCode(wmsInitialDetail.getGoodsSkuCode()); - wmsGoodsTag.setGoodsSkuOwnSpec(wmsInitialDetail.getGoodsSkuOwnSpec()); - wmsGoodsTag.setUnit(wmsInitialDetail.getUnit()); - wmsGoodsTag.setGoodsCount(wmsInitialDetail.getNum()); - wmsGoodsTagService.insert(wmsGoodsTag); - baseMapper.updateIsScbq(sid); - } - return rb.success(); - } + public ResultBean generateGoodsTag(String[] sids) { + ResultBean rb = ResultBean.fireFail(); + Set idSet = new HashSet<>(); + for (String sid : sids) { + WmsInitialDetail wmsInitialDetail = fetchBySid(sid); + String rule = wmsInitialDetail.getGoodsSkuCode() + new SimpleDateFormat("yyMMdd").format(new Date()); + if (wmsInitialDetail.getIsYwym() == 1) {//是一物一码 + int num = wmsInitialDetail.getNum().intValue(); + for (int i = 0; i < num; i++) { + //新增标签 + WmsGoodsTag wmsGoodsTag = new WmsGoodsTag(); + wmsGoodsTag.setState(0); + wmsGoodsTag.setCreateBySid(wmsInitialDetail.getCreateBySid()); + wmsGoodsTag.setBillSid(wmsInitialDetail.getBillSid()); + wmsGoodsTag.setBillDetailSid(sid); + String j = wmsGoodsTagService.selectGoodsIDNum(wmsInitialDetail.getGoodsSkuCode() + new SimpleDateFormat("yyMMdd").format(new Date())); + if (StringUtils.isBlank(j)) { + j = "0"; + } + int intValue = Integer.valueOf(j).intValue(); + String goodsID = GetSerialNum.getNum(intValue, wmsInitialDetail.getGoodsSkuCode()); + if (idSet.contains(goodsID)) { + List idList = new ArrayList<>(); + for (String s : idSet) { + if (s.contains(rule)) { + Integer integer = new Integer(s.substring(rule.length())); + idList.add(integer); + } + } + int max = Collections.max(idList); + String lsh = String.format("%04d", max + 1); + goodsID = rule + lsh; + } + wmsGoodsTag.setGoodsID(goodsID); + wmsGoodsTag.setGoodsSpuSid(wmsInitialDetail.getGoodsSpuSid()); + wmsGoodsTag.setGoodsSpuName(wmsInitialDetail.getGoodsSpuName()); + wmsGoodsTag.setGoodsSkuSid(wmsInitialDetail.getGoodsSkuSid()); + wmsGoodsTag.setGoodsSkuTitle(wmsInitialDetail.getGoodsSkuTitle()); + wmsGoodsTag.setGoodsSkuCode(wmsInitialDetail.getGoodsSkuCode()); + wmsGoodsTag.setGoodsSkuOwnSpec(wmsInitialDetail.getGoodsSkuOwnSpec()); + wmsGoodsTag.setUnit(wmsInitialDetail.getUnit()); + wmsGoodsTag.setGoodsCount(new BigDecimal("1")); + wmsGoodsTagService.insert(wmsGoodsTag); + } + } else { + //新增标签 + WmsGoodsTag wmsGoodsTag = new WmsGoodsTag(); + wmsGoodsTag.setState(0); + wmsGoodsTag.setCreateBySid(wmsInitialDetail.getCreateBySid()); + wmsGoodsTag.setBillSid(wmsInitialDetail.getBillSid()); + wmsGoodsTag.setBillDetailSid(sid); + //查询流水号生成goodsID + String i = wmsGoodsTagService.selectGoodsIDNum(wmsInitialDetail.getGoodsSkuCode() + new SimpleDateFormat("yyMMdd").format(new Date())); + if (StringUtils.isBlank(i)) { + i = "0"; + } + int intValue = Integer.valueOf(i).intValue(); + String goodsID = GetSerialNum.getNum(intValue, wmsInitialDetail.getGoodsSkuCode()); + if (idSet.contains(goodsID)) { + List idList = new ArrayList<>(); + for (String s : idSet) { + if (s.contains(rule)) { + Integer integer = new Integer(s.substring(rule.length())); + idList.add(integer); + } + } + int max = Collections.max(idList); + String num = String.format("%04d", max + 1); + goodsID = rule + num; + } + wmsGoodsTag.setGoodsID(goodsID); + wmsGoodsTag.setGoodsSpuSid(wmsInitialDetail.getGoodsSpuSid()); + wmsGoodsTag.setGoodsSpuName(wmsInitialDetail.getGoodsSpuName()); + wmsGoodsTag.setGoodsSkuSid(wmsInitialDetail.getGoodsSkuSid()); + wmsGoodsTag.setGoodsSkuTitle(wmsInitialDetail.getGoodsSkuTitle()); + wmsGoodsTag.setGoodsSkuCode(wmsInitialDetail.getGoodsSkuCode()); + wmsGoodsTag.setGoodsSkuOwnSpec(wmsInitialDetail.getGoodsSkuOwnSpec()); + wmsGoodsTag.setUnit(wmsInitialDetail.getUnit()); + wmsGoodsTag.setGoodsCount(wmsInitialDetail.getNum()); + wmsGoodsTagService.insert(wmsGoodsTag); + } + baseMapper.updateIsScbq(sid); + } + return rb.success(); + } } \ No newline at end of file diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/FormCommon.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/FormCommon.java new file mode 100644 index 0000000000..1f824ad512 --- /dev/null +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/FormCommon.java @@ -0,0 +1,27 @@ +package com.yxt.wms.biz.inventory.wmsinventory; + +import lombok.Data; + +import java.util.Map; + +/** + * @description: + * @author: dimengzhe + * @date: 2025/1/16 + **/ +@Data +public class FormCommon { + + private String id; + private String dictValue; + + private Map extra; + + // 静态方法,直接通过方法创建对象并赋值 + public static FormCommon of(String id, String dictValue) { + FormCommon formCommon = new FormCommon(); + formCommon.setId(id); + formCommon.setDictValue(dictValue); + return formCommon; + } +} diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.java index 37a9eb45ac..3af437e3fb 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.java @@ -13,6 +13,7 @@ import com.yxt.wms.biz.inventory.wmsinventory.report.DeadStockVo; import com.yxt.wms.biz.inventory.wmsinventory.report.InventoryStockListVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.math.BigDecimal; import java.util.List; @@ -102,4 +103,9 @@ public interface WmsInventoryMapper extends BaseMapper { List selCJByDeptSid(String deptSid); IPage inventoryStockList(IPage page, @Param(Constants.WRAPPER)QueryWrapper qw); + + List selOaInventoryList(@Param("useOrgSid")String useOrgSid, @Param("warehouseTypeValue")String warehouseTypeValue); + + @Select("select count from wms_inventory where goodsID = #{goodsID}") + String selCountByGoodsID(String goodsID); } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml index 048d1ecf67..feff5df0c7 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml @@ -765,4 +765,9 @@ ${ew.sqlSegment} + diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryService.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryService.java index a149717e6d..eb1a064b20 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryService.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryService.java @@ -23,6 +23,7 @@ import com.yxt.wms.biz.inventory.wmsinventory.report.InventoryStockListQuery; import com.yxt.wms.biz.inventory.wmsinventory.report.InventoryStockListVo; import com.yxt.wms.feign.base.basegoodssku.BaseGoodsSkuDetailsVo; import com.yxt.wms.feign.base.basegoodssku.BaseGoodsSkuFeign; +import com.yxt.wms.feign.base.basegoodsskuextend.BaseGoodsSkuExtendFeign; import com.yxt.wms.feign.pms.PmsPurchasebackDetailFeign; import com.yxt.wms.feign.portal.privilege.PrivilegeQuery; import com.yxt.wms.feign.portal.sysorganization.SysOrganizationFeign; @@ -56,7 +57,8 @@ public class WmsInventoryService extends MybatisBaseService listPage(PagerQuery pq) { WmsInventoryQuery query = pq.getParams(); QueryWrapper qw = new QueryWrapper<>(); @@ -1283,4 +1285,61 @@ public class WmsInventoryService extends MybatisBaseService p = PagerUtil.pageToVo(pagging, null); return p; } + + public List oaInventoryList(String orgPath, String warehouseTypeValue) { + List list = new ArrayList<>(); + String useOrgSid = ""; + if (StringUtils.isNotBlank(orgPath)) { + List split = Arrays.asList(orgPath.split("/")); + if (split.size() > 1) { + //获取本级sid获取本级部门信息 + SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData(); + useOrgSid = sysOrganization1.getSid(); + } else { + SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData(); + useOrgSid = sysOrganization.getSid(); + } + } + List inventories = baseMapper.selOaInventoryList(useOrgSid,warehouseTypeValue); + if (!inventories.isEmpty()) { + for (WmsInventory d : inventories) { + FormCommon f = new FormCommon(); + f.setId(d.getSid()); + f.setDictValue(d.getGoodsSpuName()); + Map extra = new HashMap<>(); + if (null != d.getCount()) { + extra.put("count",d.getCount().toString()); + } + if (StringUtils.isNotBlank(d.getGoodsSkuOwnSpec())) { + extra.put("goodsSkuOwnSpec",d.getGoodsSkuOwnSpec()); + } + if (StringUtils.isNotBlank(d.getGoodsSkuSid())) { + extra.put("goodsSkuSid",d.getGoodsSkuSid()); + } + if (StringUtils.isNotBlank(d.getGoodsSpuSid())) { + extra.put("goodsSpuSid",d.getGoodsSpuSid()); + } + if (StringUtils.isNotBlank(d.getUnit())) { + extra.put("unit",d.getUnit()); + } + if (warehouseTypeValue.equals("招待库")) { + String price = baseGoodsSkuExtendFeign.selSalesPrice(d.getGoodsSkuSid()).getData(); + if (StringUtils.isNotBlank(price)) { + extra.put("price",price); + } else { + extra.put("price",""); + } + } + f.setExtra(extra); + list.add(f); + } + } + return list; + } + + public ResultBean selCountByGoodsID(String goodsID) { + ResultBean rb = ResultBean.fireFail(); + String count = baseMapper.selCountByGoodsID(goodsID); + return rb.success().setData(count); + } } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldinventory/WmsOldInventoryMapper.xml b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldinventory/WmsOldInventoryMapper.xml index 17709fca42..5e1651b4e0 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldinventory/WmsOldInventoryMapper.xml +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldinventory/WmsOldInventoryMapper.xml @@ -115,7 +115,7 @@ wir.busTypeValue, wir.count, wir.currentCount, - wir.billObjName as manufacturerName, + wir.manufacturerName, abbv.vinNo from wms_inventory_record wir LEFT JOIN wms_inventory_batch wib diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldinventory/WmsOldInventoryService.java b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldinventory/WmsOldInventoryService.java index a9169f329a..734fce4f7e 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldinventory/WmsOldInventoryService.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldinventory/WmsOldInventoryService.java @@ -314,7 +314,7 @@ public class WmsOldInventoryService extends MybatisBaseService data = smsPricesTrategyBillGoodsTypeDetailFeign.selByMainSid(tjmxSid).getData(); for (SmsPricestrategyBillGoodstypedetailDetailsVo smsPricestrategyBillGoodstypedetailDetailsVo : data) { BigDecimal cost = receiptBillDetail.getCost(); @@ -1314,4 +1314,22 @@ public class WmsShelfBillService extends MybatisBaseService print3(TagQuery query) { + ResultBean rb = ResultBean.fireFail(); + GoodsTagVo vo = new GoodsTagVo(); + List sids = query.getSids(); + List list = new ArrayList<>(); + for (String sid : sids) { + GoodsTag goodsTag = new GoodsTag(); + WmsGoodsTag wmsGoodsTag = wmsGoodsTagService.fetchBySid(sid); + goodsTag.setQrText(wmsGoodsTag.getGoodsID()); + goodsTag.setText1(wmsGoodsTag.getGoodsSkuTitle()); + goodsTag.setText2(wmsGoodsTag.getGoodsSkuCode()); + goodsTag.setText3(DateUtil.formatDate(wmsGoodsTag.getCreateTime())); + goodsTag.setSid(wmsGoodsTag.getBillSid()); + list.add(goodsTag); + } + vo.setGoods(list); + return rb.success().setData(vo); + } } diff --git a/yxt-wms-biz/src/main/java/com/yxt/wms/feign/base/basegoodsskuextend/BaseGoodsSkuExtendFeign.java b/yxt-wms-biz/src/main/java/com/yxt/wms/feign/base/basegoodsskuextend/BaseGoodsSkuExtendFeign.java index bd2684439b..4e66cd8f02 100644 --- a/yxt-wms-biz/src/main/java/com/yxt/wms/feign/base/basegoodsskuextend/BaseGoodsSkuExtendFeign.java +++ b/yxt-wms-biz/src/main/java/com/yxt/wms/feign/base/basegoodsskuextend/BaseGoodsSkuExtendFeign.java @@ -21,4 +21,8 @@ public interface BaseGoodsSkuExtendFeign { @ApiOperation("根据skuSid修改销售单价") @PostMapping("/updateSalesPrice") ResultBean updateSalesPrice(@RequestParam("skuSid") String skuSid,@RequestParam("salesPrice") String salesPrice); + + @ApiOperation("根据skuSid查询销售单价") + @PostMapping("/selSalesPrice") + ResultBean selSalesPrice(@RequestParam("skuSid") String skuSid); }