Browse Source

Merge remote-tracking branch 'origin/master'

master
fanzongzhe0036 2 months ago
parent
commit
9c7b3dfa73
  1. 34
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow3/Flow3Feign.java
  2. 12
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow3/Flow3Feignback.java
  3. 6
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow3/Flow3Rest.java
  4. 25
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow3/Flow3Service.java
  5. 11
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateFeign.java
  6. 11
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateFeignFallback.java
  7. 10
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeign.java
  8. 10
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeignFallback.java
  9. 4
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.java
  10. 22
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.xml
  11. 14
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateRest.java
  12. 150
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateService.java
  13. 4
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.java
  14. 28
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.xml
  15. 14
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java
  16. 177
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java
  17. 9
      anrui-scm/anrui-scm-ui/src/api/bikerebate/bicyclerebatecheck.js
  18. 9
      anrui-scm/anrui-scm-ui/src/api/bikerebate/bicyclerebatemanagement.js
  19. 11
      anrui-scm/anrui-scm-ui/src/api/specialrebate/specialrebatecheck.js
  20. 9
      anrui-scm/anrui-scm-ui/src/api/specialrebate/specialrebatemanagement.js
  21. 41
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatetobechecked.vue
  22. 9
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagement.vue
  23. 41
      anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatecheck/specialrebatetobechecked.vue
  24. 9
      anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatemanagement/specialrebatemanagement.vue
  25. 23
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/storechange/AppStoreChangeDto.java
  26. 34
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/storechange/AppStoreChangeFeign.java
  27. 24
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/storechange/AppStoreChangeScanVo.java
  28. 30
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/firstshelves/AppFirstShelvesService.java
  29. 53
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/storechange/AppStoreChangeRest.java
  30. 207
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/storechange/AppStoreChangeService.java
  31. 66
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/wmsInventory/WmsInventory.java
  32. 10
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/wmsInventory/WmsInventoryFeign.java
  33. 24
      yxt-oa/src/main/java/com/yxt/anrui/oa/feign/flowable/flow3/Flow3Feign.java
  34. 13
      yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsH5Rest.java
  35. 30
      yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInventoryRest.java
  36. 33
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.java
  37. 475
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml
  38. 101
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryService.java
  39. 48
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/appH5/GoodsTwoListVo.java
  40. 28
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/appH5/GoodsTwoQuery.java
  41. 41
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/appH5/GoodsTwoVo.java

34
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow3/Flow3Feign.java

@ -0,0 +1,34 @@
package com.yxt.anrui.flowable.api.flow3;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowFeignback;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @description:
* @author: dimengzhe
* @date: 2025/2/12
**/
@FeignClient(
contextId = "anrui-flowable-Flow3",
name = "anrui-flowable",
path = "v3/flow",
fallback = Flow3Feignback.class)
public interface Flow3Feign {
@ApiOperation(value = "启动流程")
@PostMapping(value = "/startProcess")
@ResponseBody
ResultBean<UpdateFlowFieldVo> startProcess(@RequestBody BusinessVariables dto);
@ApiOperation(value = "处理流程")
@PostMapping(value = "/handleProsess")
@ResponseBody
ResultBean<UpdateFlowFieldVo> handleProsess(@RequestBody BusinessVariables bv);
}

12
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow3/Flow3Feignback.java

@ -0,0 +1,12 @@
package com.yxt.anrui.flowable.api.flow3;
import org.springframework.stereotype.Component;
/**
* @description:
* @author: dimengzhe
* @date: 2025/2/12
**/
@Component
public class Flow3Feignback {
}

6
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow3/Flow3Rest.java

@ -3,6 +3,8 @@ package com.yxt.anrui.flowable.biz.flow3;
import com.alibaba.fastjson.JSONObject;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flow2.FlowFeign;
import com.yxt.anrui.flowable.api.flow3.Flow3Feign;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
@ -26,13 +28,14 @@ import java.util.concurrent.*;
**/
@RestController
@RequestMapping("v3/flow")
public class Flow3Rest {
public class Flow3Rest implements Flow3Feign {
Logger log = LoggerFactory.getLogger(Flow3Rest.class);
@Autowired
private Flow3Service flowService;
@PostMapping("/startProcess")
@Override
public ResultBean<UpdateFlowFieldVo> startProcess(@RequestBody BusinessVariables bv) {
ResultBean<UpdateFlowFieldVo> rb = ResultBean.fireFail();
//获取表单中的参数
@ -54,6 +57,7 @@ public class Flow3Rest {
}
@PostMapping("/handleProsess")
@Override
public ResultBean<UpdateFlowFieldVo> handleProsess(@RequestBody BusinessVariables bv) {
ResultBean<UpdateFlowFieldVo> rb = ResultBean.fireFail();
ResultBean<UpdateFlowFieldVo> updateFlowFieldVoResultBean = flowService.handleProsess(bv, true);

25
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow3/Flow3Service.java

@ -106,13 +106,11 @@ public class Flow3Service extends MybatisBaseService<FlowMapper, Flowable> {
// 获取传入的变量
Map<String, Object> variables = bv.getFormVariables();
Map<String, Object> variablesSeconds = bv.getFormVariables();
String nextNodeUserSids = "";
String nextNodeUserSids = bv.getNextNodeUserSids();
List<String> userSidForNextNode = new ArrayList<>();
if (StringUtils.isBlank(nextNodeUserSids)) {
userSidForNextNode = getNextNodeUser(bv).getData();
variables.put("approvers", userSidForNextNode);
} else {
nextNodeUserSids = bv.getNextNodeUserSids();
}
@ -155,21 +153,30 @@ public class Flow3Service extends MybatisBaseService<FlowMapper, Flowable> {
for (int i = 0; i < tasks.size(); i++) {
Task task2 = tasks.get(i);
String isMultiInstanceTask = isMultiInstanceTask(task2);
id_ = task2.getId();
task_def_key_ = task2.getTaskDefinitionKey();
name_ = task2.getName();
if ("会签任务".equals(isMultiInstanceTask) || "或签任务".equals(isMultiInstanceTask)) {
String approver = getApproverForTask(userSidForNextNode, i);
approver = change(approver, bv.getInstanceId());
taskService.claim(task2.getId(), approver);
} else {
nextNodeUserSids = userSidForNextNode.get(0);
//查询下一环节是否有转办并添加评论
nextNodeUserSids = change(nextNodeUserSids, processInstance.getProcessInstanceId());
taskService.setAssignee(id_, nextNodeUserSids);
taskService.setVariablesLocal(id_, variables);
}
id_ = task2.getId();
task_def_key_ = task2.getTaskDefinitionKey();
name_ = task2.getName();
}
} else {
Task task2 = tasks.get(0);
id_ = task2.getId();
task_def_key_ = task2.getTaskDefinitionKey();
name_ = task2.getName();
//查询下一环节是否有转办并添加评论
nextNodeUserSids = change(nextNodeUserSids, processInstance.getProcessInstanceId());
taskService.setAssignee(id_, nextNodeUserSids);
taskService.setVariablesLocal(id_, variables);
}
//提交前传入下一环节待办人
@ -234,7 +241,7 @@ public class Flow3Service extends MybatisBaseService<FlowMapper, Flowable> {
nextUserSid = ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId();
adminContains = true;
} else {
if(!listResultBean.getData().isEmpty()){
if(listResultBean.getData() != null){
userSidForNextNode = listResultBean.getData();
formVariables.put("approvers", listResultBean.getData());
}
@ -277,7 +284,9 @@ public class Flow3Service extends MybatisBaseService<FlowMapper, Flowable> {
Task task2 = tasks.get(i);
isMultiInstanceTask = isMultiInstanceTask(task2);
if ("会签任务".equals(isMultiInstanceTask) || "或签任务".equals(isMultiInstanceTask)) {
taskService.claim(task2.getId(), userSidForNextNode.get(i)); // 由候选人认领任务
String nextUserSidNext = userSidForNextNode.get(i);
nextUserSidNext = change(nextUserSidNext, bv.getInstanceId());
taskService.claim(task2.getId(), nextUserSidNext); // 由候选人认领任务
isMultiInstanceTaskNext = true;
} else {

11
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateFeign.java

@ -37,6 +37,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.text.ParseException;
import java.util.List;
@Api(tags = "专项返利表")
@FeignClient(
@ -51,6 +52,11 @@ public interface ScmSpecialRebateFeign {
@ResponseBody
public ResultBean<PagerVo<ScmSpecialRebateVo>> listPage(@RequestBody PagerQuery<ScmSpecialRebateQuery> pq);
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listAll")
@ResponseBody
public ResultBean<List<ScmSpecialRebateVo>> listAll(@RequestBody ScmSpecialRebateQuery query);
@ApiOperation("新增或修改")
@PostMapping("/save")
@ResponseBody
@ -81,6 +87,11 @@ public interface ScmSpecialRebateFeign {
@ResponseBody
public ResultBean<PagerVo<ScmSpecialRebateVo>> checkApplyGetSpecialRebate(@RequestBody PagerQuery<ScmSpecialRebateQuery> pq);
@ApiOperation("专项返利核对申请选择待核对专项返利信息")
@PostMapping("/checkApplyGetSpecialRebateAll")
@ResponseBody
public ResultBean<List<ScmSpecialRebateVo>> checkApplyGetSpecialRebateAll(@RequestBody ScmSpecialRebateQuery query);
@ApiOperation("专项返利核对申请选择已上传专项返利信息")
@PostMapping("/checkApplyGetAlreadyUploadSpecialRebate")
@ResponseBody

11
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateFeignFallback.java

@ -34,6 +34,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.text.ParseException;
import java.util.List;
/**
* Project: anrui-scm(专项返利管理) <br/>
@ -57,6 +58,11 @@ public class ScmSpecialRebateFeignFallback implements ScmSpecialRebateFeign {
return rb.setMsg("接口anrui-scm/scmspecialrebate/listPage无法访问");
}
@Override
public ResultBean<List<ScmSpecialRebateVo>> listAll(ScmSpecialRebateQuery query) {
return null;
}
@Override
public ResultBean save(ScmSpecialRebateDto dto){
return ResultBean.fireFail().setMsg("接口anrui-scm/scmspecialrebate/save无法访问");
@ -88,6 +94,11 @@ public class ScmSpecialRebateFeignFallback implements ScmSpecialRebateFeign {
return null;
}
@Override
public ResultBean<List<ScmSpecialRebateVo>> checkApplyGetSpecialRebateAll(ScmSpecialRebateQuery query) {
return null;
}
@Override
public ResultBean<PagerVo<ScmSpecialRebateVo>> checkApplyGetAlreadyUploadSpecialRebate(PagerQuery<ScmSpecialRebateQuery> pq) {
return null;

10
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeign.java

@ -67,6 +67,11 @@ public interface ScmVehRebateFeign {
@ResponseBody
public ResultBean<PagerVo<ScmVehRebateVo>> listPage(@RequestBody PagerQuery<ScmVehRebateQuery> pq);
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listAll")
@ResponseBody
public ResultBean<List<ScmVehRebateVo>> listAll(@RequestBody ScmVehRebateQuery query);
@ApiOperation("单车返利未预提申请选择单车返利信息")
@PostMapping("/withApplyGetVehRebate")
@ResponseBody
@ -77,6 +82,11 @@ public interface ScmVehRebateFeign {
@ResponseBody
public ResultBean<PagerVo<ScmVehRebateVo>> checkApplyGetVehRebate(@RequestBody PagerQuery<ScmVehRebateQuery> pq);
@ApiOperation("单车返利核对申请选择待核对单车返利信息")
@PostMapping("/checkApplyGetVehRebateAll")
@ResponseBody
public ResultBean<List<ScmVehRebateVo>> checkApplyGetVehRebateAll(@RequestBody ScmVehRebateQuery query);
@ApiOperation("一次导出")
@PostMapping("/excelListOne")
public void excelListOne(@RequestBody ScmVehRebateQuery scmVehRebateQuery);

10
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeignFallback.java

@ -58,6 +58,11 @@ public class ScmVehRebateFeignFallback implements ScmVehRebateFeign {
return rb.setMsg("接口anrui-scm/scmvehrebate/listPage无法访问");
}
@Override
public ResultBean<List<ScmVehRebateVo>> listAll(ScmVehRebateQuery query) {
return null;
}
@Override
public ResultBean<PagerVo<ScmVehRebateVo>> withApplyGetVehRebate(PagerQuery<ScmVehRebateQuery> pq) {
return null;
@ -68,6 +73,11 @@ public class ScmVehRebateFeignFallback implements ScmVehRebateFeign {
return null;
}
@Override
public ResultBean<List<ScmVehRebateVo>> checkApplyGetVehRebateAll(ScmVehRebateQuery query) {
return null;
}
@Override
public void excelListOne(ScmVehRebateQuery scmVehRebateQuery) {

4
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.java

@ -85,4 +85,8 @@ public interface ScmSpecialRebateMapper extends BaseMapper<ScmSpecialRebate> {
void updateAdjustmentState(@Param("sid") String sid, @Param("adjustmentState") int adjustmentState);
List<ScmSpecialRebateExcelVo> excelList(@Param(Constants.WRAPPER) QueryWrapper<ScmSpecialRebate> qw);
List<ScmSpecialRebateVo> checkApplyGetSpecialRebateAll(@Param(Constants.WRAPPER) QueryWrapper<ScmSpecialRebate> qw);
List<ScmSpecialRebateVo> listAll(@Param(Constants.WRAPPER) QueryWrapper<ScmSpecialRebate> qw);
}

22
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.xml

@ -151,4 +151,26 @@
${ew.sqlSegment}
</where>
</select>
<select id="checkApplyGetSpecialRebateAll" resultType="com.yxt.anrui.scm.api.scmspecialrebate.ScmSpecialRebateVo">
SELECT *,
expectItureCost + expectTreatCost + expectSuppCost AS expectCost,
expectItureCost + expectTreatCost + expectSuppCost AS withholdCost,
onceItureCost + onceTreatCost + onceSuppCost + secondItureCost + secondTreatCost + secondSuppCost AS money
FROM scm_special_rebate
<where>
${ew.sqlSegment}
</where>
</select>
<select id="listAll" resultType="com.yxt.anrui.scm.api.scmspecialrebate.ScmSpecialRebateVo">
SELECT *,
expectItureCost + expectTreatCost + expectSuppCost AS expectCost,
expectItureCost + expectTreatCost + expectSuppCost AS withholdCost,
onceItureCost + onceTreatCost + onceSuppCost + secondItureCost + secondTreatCost + secondSuppCost AS money
FROM scm_special_rebate
<where>
${ew.sqlSegment}
</where>
</select>
</mapper>

14
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateRest.java

@ -73,6 +73,13 @@ public class ScmSpecialRebateRest implements ScmSpecialRebateFeign {
return rb.success().setData(pv);
}
@Override
public ResultBean<List<ScmSpecialRebateVo>> listAll(ScmSpecialRebateQuery query) {
ResultBean rb = ResultBean.fireFail();
List<ScmSpecialRebateVo> scmSpecialRebateVoList = scmSpecialRebateService.listAll(query);
return rb.success().setData(scmSpecialRebateVoList);
}
@ApiOperation("导出")
@PostMapping("/excelList")
public void excelList(@RequestBody ScmSpecialRebateQuery query) {
@ -147,6 +154,13 @@ public class ScmSpecialRebateRest implements ScmSpecialRebateFeign {
return rb.success().setData(pv);
}
@Override
public ResultBean<List<ScmSpecialRebateVo>> checkApplyGetSpecialRebateAll(ScmSpecialRebateQuery query) {
ResultBean rb = ResultBean.fireFail();
List<ScmSpecialRebateVo> scmSpecialRebateVoList = scmSpecialRebateService.checkApplyGetSpecialRebateAll(query);
return rb.success().setData(scmSpecialRebateVoList);
}
@Override
public ResultBean<PagerVo<ScmSpecialRebateVo>> checkApplyGetAlreadyUploadSpecialRebate(PagerQuery<ScmSpecialRebateQuery> pq) {
ResultBean rb = ResultBean.fireFail();

150
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateService.java

@ -150,6 +150,76 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate
return p;
}
public List<ScmSpecialRebateVo> listAll(ScmSpecialRebateQuery query) {
QueryWrapper<ScmSpecialRebate> qw = new QueryWrapper<>();
//========================================数据授权开始
if (StringUtils.isNotBlank(query.getMenuUrl())) {
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgPath());
privilegeQuery.setMenuUrl(query.getMenuUrl());
privilegeQuery.setMenuSid(query.getMenuSid());
privilegeQuery.setUserSid(query.getUserSid());
ResultBean<String> 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("orgPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("orgPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("orgPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("orgPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("createBySid", query.getUserSid());
} else {
List<ScmSpecialRebateVo> p = new ArrayList<>();
return p;
}
} else {
List<ScmSpecialRebateVo> p = new ArrayList<>();
return p;
}
}
if (StringUtils.isNotBlank(query.getCreateOrgName())) {
qw.like("createOrgName", query.getCreateOrgName());
}
if (StringUtils.isNotBlank(query.getBrandName())) {
qw.like("brandName", query.getBrandName());
}
if (StringUtils.isNotBlank(query.getPurchaseSystemName())) {
qw.like("purchaseSystemName", query.getPurchaseSystemName());
}
if (StringUtils.isNotBlank(query.getRebateTypeKey())) {
qw.eq("rebateTypeKey", query.getRebateTypeKey());
}
if (StringUtils.isNotBlank(query.getRebateName())) {
qw.like("rebateName", query.getRebateName());
}
if (StringUtils.isNotBlank(query.getState())) {
qw.eq("state", query.getState());
}
String createStartTime = query.getCreateStartTime();
String createEndTime = query.getCreateEndTime();
qw.apply(StringUtils.isNotBlank(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
);
qw.orderByDesc("createTime");
List<ScmSpecialRebateVo> scmSpecialRebateVoList = baseMapper.listAll(qw);
return scmSpecialRebateVoList;
}
public ResultBean saveOrUpdateDto(ScmSpecialRebateDto dto) {
ResultBean rb = ResultBean.fireFail();
String dtoSid = dto.getSid();
@ -318,6 +388,86 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate
return p;
}
public List<ScmSpecialRebateVo> checkApplyGetSpecialRebateAll(ScmSpecialRebateQuery query) {
QueryWrapper<ScmSpecialRebate> qw = new QueryWrapper<>();
//========================================数据授权开始
if (StringUtils.isNotBlank(query.getMenuUrl())) {
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgPath());
privilegeQuery.setMenuUrl(query.getMenuUrl());
privilegeQuery.setMenuSid(query.getMenuSid());
privilegeQuery.setUserSid(query.getUserSid());
ResultBean<String> 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("orgPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("orgPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("orgPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("orgPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("createBySid", query.getUserSid());
} else {
List<ScmSpecialRebateVo> p = new ArrayList<>();
return p;
}
} else {
List<ScmSpecialRebateVo> p = new ArrayList<>();
return p;
}
}
if (StringUtils.isNotBlank(query.getCreateOrgName())) {
qw.like("createOrgName", query.getCreateOrgName());
}
if (StringUtils.isNotBlank(query.getBrandName())) {
qw.like("brandName", query.getBrandName());
}
if (StringUtils.isNotBlank(query.getPurchaseSystemName())) {
qw.like("purchaseSystemName", query.getPurchaseSystemName());
}
if (StringUtils.isNotBlank(query.getRebateTypeKey())) {
qw.eq("rebateTypeKey", query.getRebateTypeKey());
}
if (StringUtils.isNotBlank(query.getRebateName())) {
qw.like("rebateName", query.getRebateName());
}
if (StringUtils.isNotBlank(query.getOnceCheckState())) {
qw.eq("onceCheckState", query.getOnceCheckState());
}
String createStartTime = query.getCreateStartTime();
String createEndTime = query.getCreateEndTime();
qw.apply(StringUtils.isNotBlank(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
);
qw.eq("state", 2);
qw.eq("adjustmentState", 0);
qw.orderByDesc("createTime");
List<ScmSpecialRebateVo> scmSpecialRebateVoList = baseMapper.checkApplyGetSpecialRebateAll(qw);
for (ScmSpecialRebateVo record : scmSpecialRebateVoList) {
//上传状态:未上传
if (StringUtils.isBlank(record.getUploadDate())) {
record.setUploadState("0");
} else {//上传状态:已上传
record.setUploadState("1");
}
}
return scmSpecialRebateVoList;
}
public PagerVo<ScmSpecialRebateVo> checkApplyGetAlreadyUploadSpecialRebate(PagerQuery<ScmSpecialRebateQuery> pq) {
ScmSpecialRebateQuery query = pq.getParams();
QueryWrapper<ScmSpecialRebate> qw = new QueryWrapper<>();

4
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.java

@ -83,4 +83,8 @@ public interface ScmVehRebateMapper extends BaseMapper<ScmVehRebate> {
void delByVehSid(String vehSid);
List<ScmVehRebateExcelVo> excelList(@Param(Constants.WRAPPER) QueryWrapper<ScmVehRebate> qw);
List<ScmVehRebateVo> checkApplyGetVehRebateAll(@Param(Constants.WRAPPER) QueryWrapper<ScmVehRebate> qw);
List<ScmVehRebateVo> listAll(@Param(Constants.WRAPPER) QueryWrapper<ScmVehRebate> qw);
}

28
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.xml

@ -131,4 +131,32 @@
${ew.sqlSegment}
</where>
</select>
<select id="checkApplyGetVehRebateAll" resultType="com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateVo">
SELECT
*,
sid AS vehRebateSid,
expectTreatCost + expectSuppCost AS expectCost,
expectTreatCost + expectSuppCost AS withholdCost,
onceTreatCost + onceSuppCost + secondTreatCost + secondSuppCost AS money
FROM
scm_veh_rebate
<where>
${ew.sqlSegment}
</where>
</select>
<select id="listAll" resultType="com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateVo">
SELECT
*,
sid AS vehRebateSid,
expectTreatCost + expectSuppCost AS expectCost,
expectTreatCost + expectSuppCost AS withholdCost,
onceTreatCost + onceSuppCost + secondTreatCost + secondSuppCost AS money
FROM
scm_veh_rebate
<where>
${ew.sqlSegment}
</where>
</select>
</mapper>

14
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java

@ -79,6 +79,13 @@ public class ScmVehRebateRest implements ScmVehRebateFeign {
return rb.success().setData(pv);
}
@Override
public ResultBean<List<ScmVehRebateVo>> listAll(ScmVehRebateQuery query) {
ResultBean rb = ResultBean.fireFail();
List<ScmVehRebateVo> scmVehRebateVoList = scmVehRebateService.listAll(query);
return rb.success().setData(scmVehRebateVoList);
}
@ApiOperation("导出")
@PostMapping("/excelList")
public void excelList(@RequestBody ScmVehRebateQuery query) {
@ -109,6 +116,13 @@ public class ScmVehRebateRest implements ScmVehRebateFeign {
return rb.success().setData(pv);
}
@Override
public ResultBean<List<ScmVehRebateVo>> checkApplyGetVehRebateAll(ScmVehRebateQuery query) {
ResultBean rb = ResultBean.fireFail();
List<ScmVehRebateVo> scmVehRebateVoList = scmVehRebateService.checkApplyGetVehRebateAll(query);
return rb.success().setData(scmVehRebateVoList);
}
@Override
public void excelListOne(ScmVehRebateQuery scmVehRebateQuery) {
//得到所有要导出的数据

177
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java

@ -66,19 +66,6 @@ import java.net.URLEncoder;
import java.util.*;
import java.util.regex.Pattern;
/**
* Project: anrui-scm(单车返利) <br/>
* File: ScmVehRebateService.java <br/>
* Class: com.yxt.anrui.scm.biz.scmvehrebate.ScmVehRebateService <br/>
* Description: 单车返利表 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-08-24 09:01:54 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper, ScmVehRebate> {
@ -179,6 +166,87 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
return p;
}
public List<ScmVehRebateVo> listAll(ScmVehRebateQuery query) {
QueryWrapper<ScmVehRebate> qw = new QueryWrapper<>();
//========================================数据授权开始
if (StringUtils.isNotBlank(query.getMenuUrl())) {
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgPath());
privilegeQuery.setMenuUrl(query.getMenuUrl());
privilegeQuery.setMenuSid(query.getMenuSid());
privilegeQuery.setUserSid(query.getUserSid());
ResultBean<String> 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("orgPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("orgPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("orgPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("orgPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("createBySid", query.getUserSid());
} else {
List<ScmVehRebateVo> p = new ArrayList<>();
return p;
}
} else {
List<ScmVehRebateVo> p = new ArrayList<>();
return p;
}
}
if (StringUtils.isNotBlank(query.getBrandName())) {
qw.like("brandName", query.getBrandName());
}
if (StringUtils.isNotBlank(query.getVehModelName())) {
qw.like("vehModelName", query.getVehModelName());
}
if (StringUtils.isNotBlank(query.getVinNo())) {
qw.like("vinNo", query.getVinNo());
}
if (StringUtils.isNotBlank(query.getRebateTypeKey())) {
qw.eq("rebateTypeKey", query.getRebateTypeKey());
}
if (StringUtils.isNotBlank(query.getRebateName())) {
qw.like("rebateName", query.getRebateName());
}
if (StringUtils.isNotBlank(query.getState())) {
qw.eq("state", query.getState());
}
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("useOrgName", query.getUseOrgName());
}
if (StringUtils.isNotBlank(query.getPurchaseSystemName())) {
qw.like("purchaseSystemName", query.getPurchaseSystemName());
}
String createStartTime = query.getCreateStartTime();
String createEndTime = query.getCreateEndTime();
qw.apply(StringUtils.isNotBlank(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
);
qw.orderByDesc("createTime");
List<ScmVehRebateVo> scmVehRebateVoList = baseMapper.listAll(qw);
for (ScmVehRebateVo record : scmVehRebateVoList) {
if ("001".equals(record.getCalculationModeKey())){
record.setCalculationStandard(record.getCalculationStandard() + "%");
}
}
return scmVehRebateVoList;
}
public PagerVo<ScmVehRebateVo> withApplyGetVehRebate(PagerQuery<ScmVehRebateQuery> pq) {
ScmVehRebateQuery query = pq.getParams();
QueryWrapper<ScmVehRebate> qw = new QueryWrapper<>();
@ -302,6 +370,89 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
return p;
}
public List<ScmVehRebateVo> checkApplyGetVehRebateAll(ScmVehRebateQuery query) {
QueryWrapper<ScmVehRebate> qw = new QueryWrapper<>();
//========================================数据授权开始
if (StringUtils.isNotBlank(query.getMenuUrl())) {
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgPath());
privilegeQuery.setMenuUrl(query.getMenuUrl());
privilegeQuery.setMenuSid(query.getMenuSid());
privilegeQuery.setUserSid(query.getUserSid());
ResultBean<String> 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("orgPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("orgPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("orgPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("orgPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("createBySid", query.getUserSid());
} else {
List<ScmVehRebateVo> p = new ArrayList<>();
return p;
}
} else {
List<ScmVehRebateVo> p = new ArrayList<>();
return p;
}
}
if (StringUtils.isNotBlank(query.getBrandName())) {
qw.like("brandName", query.getBrandName());
}
if (StringUtils.isNotBlank(query.getVehModelName())) {
qw.like("vehModelName", query.getVehModelName());
}
if (StringUtils.isNotBlank(query.getVinNo())) {
qw.like("vinNo", query.getVinNo());
}
if (StringUtils.isNotBlank(query.getRebateTypeValue())) {
qw.like("rebateTypeValue", query.getRebateTypeValue());
}
if (StringUtils.isNotBlank(query.getRebateName())) {
qw.like("rebateName", query.getRebateName());
}
if (StringUtils.isNotBlank(query.getPurchaseSystemName())) {
qw.like("purchaseSystemName", query.getPurchaseSystemName());
}
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("useOrgName", query.getUseOrgName());
}
String createStartTime = query.getCreateStartTime();
String createEndTime = query.getCreateEndTime();
qw.apply(StringUtils.isNotBlank(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
);
qw.eq("state", 2);
qw.eq("adjustmentState", 0);
qw.orderByDesc("createTime");
List<ScmVehRebateVo> scmVehRebateVoList = baseMapper.checkApplyGetVehRebateAll(qw);
for (ScmVehRebateVo record : scmVehRebateVoList) {
//上传状态:未上传
if (StringUtils.isBlank(record.getUploadDate())) {
record.setUploadState("0");
} else {//上传状态:已上传
record.setUploadState("1");
}
}
return scmVehRebateVoList;
}
public List<OneExcelVo> excelListOne(ScmVehRebateQuery query) {
QueryWrapper<ScmVehRebate> qw = new QueryWrapper<>();
//========================================数据授权开始

9
anrui-scm/anrui-scm-ui/src/api/bikerebate/bicyclerebatecheck.js

@ -10,6 +10,15 @@ export default {
headers: { 'Content-Type': 'application/json' }
})
},
// 单车返利核对(待核对)查询不分页数据
checkApplyGetVehRebateAll: function(data) {
return request({
url: '/scm/v1/scmvehrebate/checkApplyGetVehRebateAll',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
// 一次导出
excelListOne: function(data) {
return request({

9
anrui-scm/anrui-scm-ui/src/api/bikerebate/bicyclerebatemanagement.js

@ -10,6 +10,15 @@ export default {
headers: { 'Content-Type': 'application/json' }
})
},
// 查询不分页
listAll: function(data) {
return request({
url: '/scm/v1/scmvehrebate/listAll',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
// 选择车辆信息--查询分页列表
pageList: function(data) {
return request({

11
anrui-scm/anrui-scm-ui/src/api/specialrebate/specialrebatecheck.js

@ -1,7 +1,7 @@
import request from '@/utils/request'
export default {
// 单车返利核对(待核对)查询分页列表
// 专项返利核对(待核对)查询分页列表
listPage: function(data) {
return request({
url: '/scm/v1/scmspecialrebate/checkApplyGetSpecialRebate',
@ -10,6 +10,15 @@ export default {
headers: { 'Content-Type': 'application/json' }
})
},
// 专项返利核对(待核对)查询不分页
checkApplyGetSpecialRebateAll: function(data) {
return request({
url: '/scm/v1/scmspecialrebate/checkApplyGetSpecialRebateAll',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
// 一次导出
excelListOne: function(data) {
return request({

9
anrui-scm/anrui-scm-ui/src/api/specialrebate/specialrebatemanagement.js

@ -10,6 +10,15 @@ export default {
headers: { 'Content-Type': 'application/json' }
})
},
// 查询不分页
listAll: function(data) {
return request({
url: '/scm/v1/scmspecialrebate/listAll',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
// 删除
delete: function(params) {
return request({

41
anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatetobechecked.vue

@ -57,8 +57,8 @@
</div>
</div>
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" @selection-change="handleSelectionChange">
<el-table-column fixed type="selection" align="center" width="50"/>
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" @selection-change="handleSelectionChange" show-summary :summary-method="getSummaries">
<el-table-column fixed type="selection" align="center" width="60"/>
<el-table-column fixed label="序号" type="index" :index="indexMethod" align="center" width="80"/>
<el-table-column label="操作" align="center" width="180">
<template slot-scope="scope">
@ -84,8 +84,8 @@
<el-table-column prop="manufactorSettlementPrice" label="车辆入库价" align="center" width="140" />
<el-table-column prop="freight" label="其中运费" align="center" width="120" />
<el-table-column prop="createTime" label="创建日期" align="center" width="120" />
<el-table-column prop="rebateName" label="返利名称" align="center" min-width="150" />
<el-table-column prop="rebateTypeValue" label="返利类型" align="center" width="120" />
<el-table-column prop="rebateName" label="返利名称" align="center" min-width="150" />
<el-table-column prop="estimateRebate" label="预计返利" align="center" width="120" />
<el-table-column prop="withholdCost" label="其中预提费用" align="center" width="140" />
<el-table-column prop="palceGenDate" label="所属年月" align="center" width="120" />
@ -410,6 +410,7 @@ export default {
// -----------
tableKey: 0,
list: [],
listAll: [],
sids: [],
FormLoading: false,
state_list: [
@ -549,6 +550,13 @@ export default {
this.listQuery.total = 0
}
})
req.checkApplyGetVehRebateAll(this.listQuery.params).then((res) => {
if (res.success) {
this.listAll = res.data
} else {
this.listAll = []
}
})
},
//
handleFilter() {
@ -783,6 +791,33 @@ export default {
this.uploadData.orgPath = ''
this.getList()
}
},
//
getSummaries(param) {
param.data = this.listAll
const { columns, data } = param
const sums = []
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计'
return
}
const values = data.map(item => Number(item[column.property]))
if (column.property === 'manufactorSettlementPrice' || column.property === 'freight' || column.property === 'estimateRebate' || column.property === 'expectCost' || column.property === 'uploadMoney' || column.property === 'secondaryUploadMoney' || column.property === 'stayDetermineMoney' || column.property === 'money' || column.property === 'diffAmount' || column.property === 'adjustmentMoney') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return Math.round((parseFloat(prev) + parseFloat(curr)) * 100) / 100
} else {
return Math.round((parseFloat(prev)) * 100) / 100
}
}, 0)
sums[index] += ''
} else {
sums[index] = ''
}
})
return sums
}
}
}

9
anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagement.vue

@ -222,6 +222,7 @@ export default {
// -----------
tableKey: 0,
list: [],
listAll: [],
sids: [],
FormLoading: false,
listLoading: false,
@ -361,6 +362,13 @@ export default {
this.listQuery.total = 0
}
})
req.listAll(this.listQuery.params).then((res) => {
if (res.success) {
this.listAll = res.data
} else {
this.listAll = []
}
})
},
//
handleFilter() {
@ -515,6 +523,7 @@ export default {
},
//
getSummaries(param) {
param.data = this.listAll
const { columns, data } = param
const sums = []
columns.forEach((column, index) => {

41
anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatecheck/specialrebatetobechecked.vue

@ -56,8 +56,8 @@
</div>
</div>
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" @selection-change="handleSelectionChange">
<el-table-column fixed type="selection" align="center" width="50"/>
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" @selection-change="handleSelectionChange" show-summary :summary-method="getSummaries">
<el-table-column fixed type="selection" align="center" width="60"/>
<el-table-column fixed label="序号" type="index" :index="indexMethod" align="center" width="80"/>
<el-table-column label="操作" align="center" width="180">
<template slot-scope="scope">
@ -79,8 +79,8 @@
<el-table-column prop="purchaseSystemName" label="采购系统" align="center" width="140" />
<el-table-column prop="brandName" label="品牌" align="center" width="120" />
<el-table-column prop="createTime" label="创建日期" align="center" width="120" />
<el-table-column prop="rebateName" label="返利名称" align="center" min-width="150" />
<el-table-column prop="rebateTypeValue" label="返利类型" align="center" width="120" />
<el-table-column prop="rebateName" label="返利名称" align="center" min-width="150" />
<el-table-column prop="estimateRebate" label="预计返利" align="center" width="120" />
<el-table-column prop="withholdCost" label="其中预提费用" align="center" width="140" />
<el-table-column prop="palceGenDate" label="所属年月" align="center" width="120" />
@ -395,6 +395,7 @@ export default {
// -----------
tableKey: 0,
list: [],
listAll: [],
sids: [],
FormLoading: false,
rebateType_list: [],
@ -546,6 +547,13 @@ export default {
this.listQuery.total = 0
}
})
req.checkApplyGetSpecialRebateAll(this.listQuery.params).then((res) => {
if (res.success) {
this.listAll = res.data
} else {
this.listAll = []
}
})
},
//
handleFilter() {
@ -779,6 +787,33 @@ export default {
this.uploadData.orgPath = ''
this.getList()
}
},
//
getSummaries(param) {
param.data = this.listAll
const { columns, data } = param
const sums = []
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计'
return
}
const values = data.map(item => Number(item[column.property]))
if (column.property === 'estimateRebate' || column.property === 'expectCost' || column.property === 'uploadMoney' || column.property === 'secondaryUploadMoney' || column.property === 'stayDetermineMoney' || column.property === 'money' || column.property === 'diffAmount' || column.property === 'adjustmentMoney') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return Math.round((parseFloat(prev) + parseFloat(curr)) * 100) / 100
} else {
return Math.round((parseFloat(prev)) * 100) / 100
}
}, 0)
sums[index] += ''
} else {
sums[index] = ''
}
})
return sums
}
}
}

9
anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatemanagement/specialrebatemanagement.vue

@ -157,6 +157,7 @@ export default {
// -----------
tableKey: 0,
list: [],
listAll: [],
sids: [],
FormLoading: false,
listLoading: false,
@ -293,6 +294,13 @@ export default {
this.listQuery.total = 0
}
})
req.listAll(this.listQuery.params).then((res) => {
if (res.success) {
this.listAll = res.data
} else {
this.listAll = []
}
})
},
//
handleFilter() {
@ -389,6 +397,7 @@ export default {
},
//
getSummaries(param) {
param.data = this.listAll
const { columns, data } = param
const sums = []
columns.forEach((column, index) => {

23
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/storechange/AppStoreChangeDto.java

@ -0,0 +1,23 @@
package com.yxt.anrui.terminal.api.as.storechange;
import com.yxt.anrui.terminal.api.as.firstshelves.AppFirstShelvesGoodsDto;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class AppStoreChangeDto implements Dto {
@ApiModelProperty("库存sid")
private String sid;
@ApiModelProperty("移位数量")
private String count;
@ApiModelProperty("移位仓库")
private String houseInfo2;
@ApiModelProperty("移位库位编码")
private String houseCode2;
@ApiModelProperty("移位仓库")
private String store;
}

34
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/storechange/AppStoreChangeFeign.java

@ -0,0 +1,34 @@
package com.yxt.anrui.terminal.api.as.storechange;
import com.yxt.anrui.terminal.api.as.firstshelves.AppFirstShelvesDto;
import com.yxt.anrui.terminal.api.as.firstshelves.AppFirstShelvesQuery;
import com.yxt.anrui.terminal.api.as.firstshelves.AppFirstShelvesScanVo;
import com.yxt.anrui.terminal.api.as.firstshelves.AppFirstShelvesVo;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
/**
* @Author
* @Date
* @Description
*/
@FeignClient(
contextId = "terminal-AppStoreChange",
name = "anrui-terminal",
path = "v1/storeChange")
public interface AppStoreChangeFeign {
@ApiOperation("标签扫描")
@GetMapping("/scan")
@ResponseBody
public ResultBean<AppStoreChangeScanVo> scan(@RequestParam("content") String content, @RequestParam("type") String type, @RequestParam("orgPath") String orgPath, @RequestParam(value = "storeSid", required = false) String storeSid);
@ApiOperation("保存")
@PostMapping("/save")
@ResponseBody
public ResultBean save(@RequestBody AppStoreChangeDto dto);
}

24
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/storechange/AppStoreChangeScanVo.java

@ -0,0 +1,24 @@
package com.yxt.anrui.terminal.api.as.storechange;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class AppStoreChangeScanVo implements Vo {
@ApiModelProperty("0商品码,1库位码")
private String type;
@ApiModelProperty("商品sid")
private String sid;
@ApiModelProperty("商品下的库存表里的sid集合")
private List<String> storeSids;
@ApiModelProperty("库位码")
private String houseCode;
@ApiModelProperty("库区名+库位名")
private String houseName;
@ApiModelProperty("仓库地址")
private String houseAddress;
}

30
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/firstshelves/AppFirstShelvesService.java

@ -26,6 +26,8 @@
package com.yxt.anrui.terminal.biz.as.firstshelves;
import cn.hutool.core.date.DateUtil;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.terminal.api.as.firstshelves.*;
import com.yxt.anrui.terminal.fegin.wmsInventory.WmsInventoryFeign;
@ -43,9 +45,11 @@ import com.yxt.common.core.vo.PagerVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@Service
@ -61,6 +65,8 @@ public class AppFirstShelvesService {
private WmsInitialDetailFeign wmsInitialDetailFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
public ResultBean<AppFirstShelvesVo> list(PagerQuery<AppFirstShelvesQuery> pagerQuery) {
ResultBean rb = ResultBean.fireFail();
@ -100,20 +106,20 @@ public class AppFirstShelvesService {
}
String count = wmsInventoryFeign.selCountByGoodsID(content).getData();
BigDecimal num = null;
if (StringUtils.isNotBlank(count)){
if (StringUtils.isNotBlank(count)) {
num = new BigDecimal(count);
}else {
} else {
num = new BigDecimal("0");
}
WmsGoodsTag wmsGoodsTag = wmsGoodsTagFeign.selectByGoodsId(content).getData();
BigDecimal chae = wmsGoodsTag.getGoodsCount().subtract(num);
if (chae.compareTo(BigDecimal.ZERO) == 0){
if (chae.compareTo(BigDecimal.ZERO) == 0) {
return rb.setMsg("该商品已全部入库");
}
appFirstShelvesScanVo.setType(type);
appFirstShelvesScanVo.setGoodsID(content);
appFirstShelvesScanVo.setGoodsName(wmsGoodsTag.getGoodsSkuTitle());
appFirstShelvesScanVo.setGoodsMax(chae.setScale(0,BigDecimal.ROUND_DOWN).toString());
appFirstShelvesScanVo.setGoodsMax(chae.setScale(0, BigDecimal.ROUND_DOWN).toString());
} else if ("1".equals(type)) {//库位码
if (!content.contains("#")) {
return rb.setMsg("请扫描库位码");
@ -157,9 +163,19 @@ public class AppFirstShelvesService {
List<AppFirstShelvesGoodsDto> goodsList = dto.getGoodsList();
WmsInventorySaveDto wmsInventorySaveDto = new WmsInventorySaveDto();
wmsInventorySaveDto.setCreateBySid(dto.getUserSid());
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()).getData();
wmsInventorySaveDto.setCreateOrgSid(useOrgSid);
wmsInventorySaveDto.setUseOrgSid(useOrgSid);
String createOrgSid = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()).getData();
wmsInventorySaveDto.setCreateOrgSid(createOrgSid);
String deptSid = "";
List<String> split = Arrays.asList(dto.getOrgPath().split("/"));
if (split.size() > 1) {
//获取本级sid获取本级部门信息
SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData();
deptSid = sysOrganization1.getSid();
} else {
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData();
deptSid = sysOrganization.getSid();
}
wmsInventorySaveDto.setUseOrgSid(deptSid);
wmsInventorySaveDto.setFirstInDate(DateUtil.today());
for (AppFirstShelvesGoodsDto appFirstShelvesGoodsDto : goodsList) {
WmsGoodsTag wmsGoodsTag = wmsGoodsTagFeign.selectByGoodsId(appFirstShelvesGoodsDto.getGoodsID()).getData();

53
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/storechange/AppStoreChangeRest.java

@ -0,0 +1,53 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.terminal.biz.as.storechange;
import com.yxt.anrui.terminal.api.as.firstshelves.*;
import com.yxt.anrui.terminal.api.as.storechange.AppStoreChangeFeign;
import com.yxt.anrui.terminal.api.as.storechange.AppStoreChangeScanVo;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("v1/storeChange")
public class AppStoreChangeRest implements AppStoreChangeFeign {
@Autowired
private AppStoreChangeService appStoreChangeService;
@Override
public ResultBean<AppStoreChangeScanVo> scan(String content, String type, String orgPath, String storeSid) {
return appStoreChangeService.scan(content, type, orgPath, storeSid);
}
@Override
public ResultBean save(AppFirstShelvesDto dto) {
return appStoreChangeService.save(dto);
}
}

207
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/storechange/AppStoreChangeService.java

@ -0,0 +1,207 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.terminal.biz.as.storechange;
import cn.hutool.core.date.DateUtil;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.terminal.api.as.firstshelves.*;
import com.yxt.anrui.terminal.api.as.storechange.AppStoreChangeScanVo;
import com.yxt.anrui.terminal.fegin.wmsInventory.WmsInventory;
import com.yxt.anrui.terminal.fegin.wmsInventory.WmsInventoryFeign;
import com.yxt.anrui.terminal.fegin.wmsInventory.WmsInventorySaveDto;
import com.yxt.anrui.terminal.fegin.wmsgoodstag.GoodsTagListQuery;
import com.yxt.anrui.terminal.fegin.wmsgoodstag.WmsGoodsTag;
import com.yxt.anrui.terminal.fegin.wmsgoodstag.WmsGoodsTagFeign;
import com.yxt.anrui.terminal.fegin.wmsinitialdetail.WmsInitialDetail;
import com.yxt.anrui.terminal.fegin.wmsinitialdetail.WmsInitialDetailFeign;
import com.yxt.anrui.terminal.fegin.wmswarehouserack.WmsHouseInfoVo;
import com.yxt.anrui.terminal.fegin.wmswarehouserack.WmsWarehouseRackFeign;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class AppStoreChangeService {
@Resource
private WmsGoodsTagFeign wmsGoodsTagFeign;
@Resource
private WmsWarehouseRackFeign wmsWarehouseRackFeign;
@Resource
private WmsInventoryFeign wmsInventoryFeign;
@Resource
private WmsInitialDetailFeign wmsInitialDetailFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
public ResultBean<AppFirstShelvesVo> list(PagerQuery<AppFirstShelvesQuery> pagerQuery) {
ResultBean rb = ResultBean.fireFail();
PagerQuery<GoodsTagListQuery> pagerQuery1 = new PagerQuery<>();
GoodsTagListQuery params = new GoodsTagListQuery();
AppFirstShelvesQuery params1 = pagerQuery.getParams();
params.setUserSid(params1.getUserSid());
params.setOrgPath(params1.getOrgPath());
params.setMenuSid(params1.getMenuSid());
params.setName(params1.getName());
pagerQuery1.setParams(params);
pagerQuery1.setSize(1000);
PagerVo<WmsGoodsTag> data = wmsGoodsTagFeign.goodsTagList(pagerQuery1).getData();
AppFirstShelvesVo appFirstShelvesVo = new AppFirstShelvesVo();
List<AppFirstShelvesGoodsVo> goods = new ArrayList<>();
List<WmsGoodsTag> list = data.getRecords();
for (WmsGoodsTag wmsGoodsTag : list) {
AppFirstShelvesGoodsVo appFirstShelvesGoodsVo = new AppFirstShelvesGoodsVo();
appFirstShelvesGoodsVo.setSid(wmsGoodsTag.getSid());
appFirstShelvesGoodsVo.setName(wmsGoodsTag.getGoodsSkuTitle());
appFirstShelvesGoodsVo.set_id(wmsGoodsTag.getGoodsID());
appFirstShelvesGoodsVo.setNum(wmsGoodsTag.getGoodsCount());
appFirstShelvesGoodsVo.setUnit(wmsGoodsTag.getUnit());
appFirstShelvesGoodsVo.setSpecs(wmsGoodsTag.getGoodsSkuOwnSpec());
goods.add(appFirstShelvesGoodsVo);
}
appFirstShelvesVo.setGoods(goods);
return rb.success().setData(appFirstShelvesVo);
}
public ResultBean<AppStoreChangeScanVo> scan(String content, String type, String orgPath, String storeSid) {
ResultBean rb = ResultBean.fireFail();
String deptSid = "";
if (StringUtils.isNotBlank(orgPath)) {
List<String> split = Arrays.asList(orgPath.split("/"));
if (split.size() > 1) {
//获取本级sid获取本级部门信息
SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData();
deptSid = sysOrganization1.getSid();
} else {
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData();
deptSid = sysOrganization.getSid();
}
}
AppStoreChangeScanVo appStoreChangeScanVo = new AppStoreChangeScanVo();
if ("0".equals(type)) {//商品码
if (content.contains("#")) {
return rb.setMsg("请扫描商品码");
}
if (StringUtils.isBlank(storeSid)) {
List<WmsInventory> wmsInventoryList = wmsInventoryFeign.selByGoodsIDAndUseOrgSid(content, deptSid).getData();
if (wmsInventoryList.size() == 0) {
return rb.setMsg("当前商品不可移位");
}
appStoreChangeScanVo.setType(type);
appStoreChangeScanVo.setSid(wmsInventoryList.get(0).getGoodsSpuSid());
appStoreChangeScanVo.setStoreSids(wmsInventoryList.stream().map(WmsInventory::getWarehouseSid).collect(Collectors.toList()));
} else {
List<WmsInventory> wmsInventoryList = wmsInventoryFeign.selByGoodsIDAndUseOrgSidAndWarehouseSid(content, deptSid, storeSid).getData();
appStoreChangeScanVo.setType(type);
appStoreChangeScanVo.setSid(wmsInventoryList.get(0).getGoodsSpuSid());
appStoreChangeScanVo.setStoreSids(wmsInventoryList.stream().map(WmsInventory::getWarehouseSid).collect(Collectors.toList()));
}
} else if ("1".equals(type)) {//库位码
if (!content.contains("#")) {
return rb.setMsg("请扫描库位码");
}
String[] split = content.split("#");
String houseCode = split[0];
ResultBean<WmsHouseInfoVo> wmsHouseInfoVoResultBean = wmsWarehouseRackFeign.selHouseInfoByFullCode(houseCode);
if (wmsHouseInfoVoResultBean.getSuccess()) {
WmsHouseInfoVo houseInfoVo = wmsHouseInfoVoResultBean.getData();
if (null != houseInfoVo) {
String houseName = "";
String areaName = "";
String rackName = "";
String zoneName = "";
if (StringUtils.isNotBlank(houseInfoVo.getWarehouseName())) {
houseName = houseInfoVo.getWarehouseName();
}
if (StringUtils.isNotBlank(houseInfoVo.getWareAreaName())) {
areaName = houseInfoVo.getWareAreaName();
}
if (StringUtils.isNotBlank(houseInfoVo.getWarehouseRackName())) {
rackName = houseInfoVo.getWarehouseRackName();
}
if (StringUtils.isNotBlank(houseInfoVo.getWarehouseZoneName())) {
zoneName = houseInfoVo.getWarehouseZoneName();
}
appStoreChangeScanVo.setHouseName(houseName + "-" + zoneName + "-" + areaName);
appStoreChangeScanVo.setHouseAddress(houseInfoVo.getWarehouseRackCode());
appStoreChangeScanVo.setHouseCode(houseCode);
appStoreChangeScanVo.setType(type);
} else {
return rb.setMsg("扫描库位码为空");
}
}
}
return rb.success().setData(appStoreChangeScanVo);
}
public ResultBean save(AppFirstShelvesDto dto) {
ResultBean rb = ResultBean.fireFail();
List<AppFirstShelvesGoodsDto> goodsList = dto.getGoodsList();
WmsInventorySaveDto wmsInventorySaveDto = new WmsInventorySaveDto();
wmsInventorySaveDto.setCreateBySid(dto.getUserSid());
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()).getData();
wmsInventorySaveDto.setCreateOrgSid(useOrgSid);
wmsInventorySaveDto.setUseOrgSid(useOrgSid);
wmsInventorySaveDto.setFirstInDate(DateUtil.today());
for (AppFirstShelvesGoodsDto appFirstShelvesGoodsDto : goodsList) {
WmsGoodsTag wmsGoodsTag = wmsGoodsTagFeign.selectByGoodsId(appFirstShelvesGoodsDto.getGoodsID()).getData();
WmsInitialDetail wmsInitialDetail = wmsInitialDetailFeign.selBySid(wmsGoodsTag.getBillDetailSid()).getData();
WmsHouseInfoVo wmsHouseInfoVo = wmsWarehouseRackFeign.selHouseInfoByFullCode(appFirstShelvesGoodsDto.getHouseCode()).getData();
wmsInventorySaveDto.setGoodsSpuSid(wmsGoodsTag.getGoodsSpuSid());
wmsInventorySaveDto.setGoodsSpuName(wmsGoodsTag.getGoodsSpuName());
wmsInventorySaveDto.setGoodsSkuSid(wmsGoodsTag.getGoodsSkuSid());
wmsInventorySaveDto.setGoodsSkuTitle(wmsGoodsTag.getGoodsSkuTitle());
wmsInventorySaveDto.setGoodsSkuCode(wmsGoodsTag.getGoodsSkuCode());
wmsInventorySaveDto.setGoodsSkuOwnSpec(wmsGoodsTag.getGoodsSkuOwnSpec());
wmsInventorySaveDto.setUnit(wmsGoodsTag.getUnit());
wmsInventorySaveDto.setCount(appFirstShelvesGoodsDto.getCount());
wmsInventorySaveDto.setGoodsID(appFirstShelvesGoodsDto.getGoodsID());
wmsInventorySaveDto.setManufacturerSid(wmsInitialDetail.getManufacturerSid());
wmsInventorySaveDto.setManufacturerName(wmsInitialDetail.getManufacturerName());
wmsInventorySaveDto.setFirstInDate(DateUtil.formatDate(wmsInitialDetail.getFirstInDate()));
wmsInventorySaveDto.setWarehouseSid(wmsHouseInfoVo.getWarehouseSid());
wmsInventorySaveDto.setWarehouseName(wmsHouseInfoVo.getWarehouseName());
wmsInventorySaveDto.setWarehouseRackSid(wmsHouseInfoVo.getWarehouseRackSid());
wmsInventorySaveDto.setWarehouseRackCode(appFirstShelvesGoodsDto.getHouseCode());
wmsInventoryFeign.saveWmsInventory(wmsInventorySaveDto).getData();
}
return rb.success();
}
}

66
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/wmsInventory/WmsInventory.java

@ -0,0 +1,66 @@
package com.yxt.anrui.terminal.fegin.wmsInventory;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class WmsInventory extends BaseEntity {
@ApiModelProperty("批次号")
private String batchNumber;
@ApiModelProperty("商品ID(唯一编码,入库时生成,生成规则为商品编码+YYMMdd+4位流水)")
private String goodsID;
@ApiModelProperty("商品基础信息sid")
private String goodsSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
@ApiModelProperty("商品编码(图号)")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("现有量")
private BigDecimal count;
@ApiModelProperty("分配量(锁定数量,出库申请通过,但未实际出库)")
private BigDecimal allocateCount;
@ApiModelProperty("拣货量")
private BigDecimal pickCount;
@ApiModelProperty("冻结量")
private BigDecimal freezeCount;
@ApiModelProperty("入库单价")
private BigDecimal cost;
@ApiModelProperty("税率")
private BigDecimal taxRate;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库位sid")
private String warehouseRackSid;
@ApiModelProperty("库位编码")
private String warehouseRackCode;
@ApiModelProperty("首次入库日期-计算库龄的依据")
private Date firstInDate;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("厂家订单号")
private String manufactorBillNo;
@ApiModelProperty("厂家sid")
private String manufacturerSid; // 库位sid
@ApiModelProperty("厂家名称")
private String manufacturerName; // 库位编号
@ApiModelProperty("客户/供应商sid,出库是为客户,入库时为供应商")
private String supplierSid;
@ApiModelProperty("客户/供应商名称")
private String supplierName;
}

10
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/wmsInventory/WmsInventoryFeign.java

@ -12,6 +12,8 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* @description: 商品基础信息
* @author: fzz
@ -39,4 +41,12 @@ public interface WmsInventoryFeign {
@ApiOperation("保存商品库存")
@PostMapping("/saveWmsInventory")
ResultBean saveWmsInventory(@RequestBody WmsInventorySaveDto dto);
@ApiOperation("根据商品ID和部门sid查询")
@PostMapping("/selByGoodsIDAndUseOrgSid")
ResultBean<List<WmsInventory>> selByGoodsIDAndUseOrgSid(@RequestParam("goodID") String goodID, @RequestParam("useOrgSid") String useOrgSid);
@ApiOperation("根据商品ID和部门sid和仓库sid查询")
@PostMapping("/selByGoodsIDAndUseOrgSidAndWarehouseSid")
ResultBean<List<WmsInventory>> selByGoodsIDAndUseOrgSidAndWarehouseSid(@RequestParam("goodID") String goodID, @RequestParam("useOrgSid") String useOrgSid, @RequestParam("warehouseSid") String warehouseSid);
}

24
yxt-oa/src/main/java/com/yxt/anrui/oa/feign/flowable/flow3/Flow3Feign.java

@ -0,0 +1,24 @@
package com.yxt.anrui.oa.feign.flowable.flow3;
import com.yxt.anrui.oa.feign.flowable.flow.BusinessVariables;
import com.yxt.anrui.oa.feign.flowable.flow.UpdateFlowFieldVo;
import com.yxt.anrui.oa.feign.flowable.flow2.FlowDelegateQuery;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
@FeignClient(
contextId = "anrui-flowable-Flow3",
name = "anrui-flowable",
path = "v3/flow")
public interface Flow3Feign {
@ApiOperation(value = "启动流程")
@PostMapping(value = "/startProcess2")
@ResponseBody
ResultBean<UpdateFlowFieldVo> startProcess2(@RequestBody BusinessVariables dto);
}

13
yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsH5Rest.java

@ -5,6 +5,8 @@ import com.yxt.common.core.result.ResultBean;
import com.yxt.wms.biz.inventory.wmsgoodstag.app.AppTagInit;
import com.yxt.wms.biz.inventory.wmsinventory.WmsInventoryService;
import com.yxt.wms.biz.inventory.wmsinventory.appH5.GoodsTagH5Vo;
import com.yxt.wms.biz.inventory.wmsinventory.appH5.GoodsTwoQuery;
import com.yxt.wms.biz.inventory.wmsinventory.appH5.GoodsTwoVo;
import com.yxt.wms.biz.inventory.wmsinventory.appH5.HouseRackH5Vo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -50,6 +52,17 @@ public class WmsH5Rest {
return rb.success().setData(vo);
}
@GetMapping("goods2")
@ApiOperation("扫描商品标签看详情")
ResultBean<GoodsTwoVo> goods2(@RequestBody GoodsTwoQuery query) {
ResultBean rb = ResultBean.fireFail();
GoodsTwoVo vo = wmsInventoryService.goods2(query);
if (null == vo) {
return rb.fail().setMsg("商品不存在");
}
return rb.success().setData(vo);
}
@GetMapping("h5/{qrCode}")
@ApiOperation("扫描商品标签看详情")
ResultBean<String> h5Code(@PathVariable("qrCode") String qrCode) {

30
yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInventoryRest.java

@ -38,7 +38,6 @@ public class WmsInventoryRest {
HttpServletResponse response;
@ApiOperation("根据goodsID获取数据")
@GetMapping("/getListByGoodsID")
public ResultBean<List<WmsInventory>> getListByGoodsID(@RequestParam("goodsID") String goodsID) {
@ -251,9 +250,11 @@ public class WmsInventoryRest {
@ApiOperation("根据维修单号和旧件图号查询旧件库存")
@PostMapping("/selBillNoAndCode")
ResultBean<List<WmsInventoryReturnFactSelectList>> selBillNoAndCode(@RequestParam("sourceBillNo") String sourceBillNo,@RequestParam("goodsSkuCode") String goodsSkuCode,@RequestParam("deptSid") String deptSid){
return wmsInventoryService.selBillNoAndCode(sourceBillNo,goodsSkuCode,deptSid);
};
ResultBean<List<WmsInventoryReturnFactSelectList>> selBillNoAndCode(@RequestParam("sourceBillNo") String sourceBillNo, @RequestParam("goodsSkuCode") String goodsSkuCode, @RequestParam("deptSid") String deptSid) {
return wmsInventoryService.selBillNoAndCode(sourceBillNo, goodsSkuCode, deptSid);
}
;
@ApiOperation("根据Sid获取库存实体")
@PostMapping("/fetchEntityBySid")
@ -271,7 +272,7 @@ public class WmsInventoryRest {
@ApiOperation("根据商品skuSid计算平均入库价")
@GetMapping("/compute")
ResultBean<BigDecimal> compute(@RequestParam("skuSid") String skuSid){
ResultBean<BigDecimal> compute(@RequestParam("skuSid") String skuSid) {
ResultBean rb = ResultBean.fireFail();
BigDecimal price = wmsInventoryService.compute(skuSid);
return rb.success().setData(price);
@ -304,9 +305,22 @@ public class WmsInventoryRest {
@ApiOperation("根据商品ID查询库存数量")
@PostMapping("/selCountByGoodsID")
public ResultBean<String> selCountByGoodsID(@RequestParam("goodsID") String goodsID){
public ResultBean<String> selCountByGoodsID(@RequestParam("goodsID") String goodsID) {
return wmsInventoryService.selCountByGoodsID(goodsID);
}
@ApiOperation("根据商品ID和部门sid查询")
@PostMapping("/selByGoodsIDAndUseOrgSid")
ResultBean<List<WmsInventory>> selByGoodsIDAndUseOrgSid(@RequestParam("goodID") String goodID, @RequestParam("useOrgSid") String useOrgSid) {
return wmsInventoryService.selByGoodsIDAndUseOrgSid(goodID, useOrgSid);
}
@ApiOperation("根据商品ID和部门sid和仓库sid查询")
@PostMapping("/selByGoodsIDAndUseOrgSidAndWarehouseSid")
ResultBean<List<WmsInventory>> selByGoodsIDAndUseOrgSidAndWarehouseSid(@RequestParam("goodID") String goodID, @RequestParam("useOrgSid") String useOrgSid, @RequestParam("warehouseSid") String warehouseSid) {
return wmsInventoryService.selByGoodsIDAndUseOrgSidAndWarehouseSid(goodID, useOrgSid, warehouseSid);
}
//----------------------------- 报表 -----------------------------
@ApiOperation("滞销品查询")
@PostMapping("/deadStockList")
@ -327,9 +341,9 @@ public class WmsInventoryRest {
//------------------------------ 行政类审批查询库存 ---------------------------------------
@ApiOperation("行政类审批查询库存")
@PostMapping("/oaInventoryList")
public ResultBean<List<FormCommon>> oaInventoryList(@RequestParam("orgPath") String orgPath,@RequestParam("warehouseTypeValue") String warehouseTypeValue) {
public ResultBean<List<FormCommon>> oaInventoryList(@RequestParam("orgPath") String orgPath, @RequestParam("warehouseTypeValue") String warehouseTypeValue) {
ResultBean<List<FormCommon>> rb = ResultBean.fireFail();
List<FormCommon> list = wmsInventoryService.oaInventoryList(orgPath,warehouseTypeValue);
List<FormCommon> list = wmsInventoryService.oaInventoryList(orgPath, warehouseTypeValue);
return rb.success().setData(list);
}

33
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.java

@ -44,9 +44,9 @@ public interface WmsInventoryMapper extends BaseMapper<WmsInventory> {
IPage<WmsInventorySalesVo> listPageSales(IPage<WmsInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
IPage<WmsInventoryPackageVo> getPackageGoodsVo(IPage<WmsInventory> page,@Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
IPage<WmsInventoryPackageVo> getPackageGoodsVo(IPage<WmsInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
IPage<WmsInventoryAgeVo> inventoryAgeList(IPage<WmsInventory> page,@Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
IPage<WmsInventoryAgeVo> inventoryAgeList(IPage<WmsInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
List<WmsInventoryAgeExportVo> ageExportExcel(@Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
@ -72,13 +72,13 @@ public interface WmsInventoryMapper extends BaseMapper<WmsInventory> {
List<WmsInventory> selByDeptSid(String deptSid);
List<WmsInventory> selByDeptSidAndRackSid(@Param("deptSid") String deptSid,@Param("rackSids") List<String> rackSids);
List<WmsInventory> selByDeptSidAndRackSid(@Param("deptSid") String deptSid, @Param("rackSids") List<String> rackSids);
IPage<WmsInventoryBillUseOrgSidVo> selInvenGoodsByUseOrgSid(IPage<WmsInventory> page,@Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
IPage<WmsInventoryBillUseOrgSidVo> selInvenGoodsByUseOrgSid(IPage<WmsInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
IPage<WmsInventoryReturnFactSelectList> returnFactGoodsListPage(IPage<WmsInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
List<WmsInventoryReturnFactSelectList> selBillNoAndCode(@Param("sourceBillNo") String sourceBillNo,@Param("goodsSkuCode") String goodsSkuCode,@Param("deptSid") String deptSid);
List<WmsInventoryReturnFactSelectList> selBillNoAndCode(@Param("sourceBillNo") String sourceBillNo, @Param("goodsSkuCode") String goodsSkuCode, @Param("deptSid") String deptSid);
IPage<FittingsInventoryVo> fittingsInventory(IPage<WmsInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
@ -86,26 +86,37 @@ public interface WmsInventoryMapper extends BaseMapper<WmsInventory> {
List<OldStorageListVo> appOldStorage(@Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
List<WmsInventory> selJJByDeptSidAndRackSid(@Param("deptSid") String deptSid,@Param("rackSids") List<String> rackSids);
List<WmsInventory> selJJByDeptSidAndRackSid(@Param("deptSid") String deptSid, @Param("rackSids") List<String> rackSids);
List<WmsInventory> selJJByDeptSid(String deptSid);
WmsInventory selbyGoodsId(@Param("goodsID") String goodsID);
IPage<DeadStockVo> deadStockList(IPage<WmsInventory> page,@Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
IPage<DeadStockVo> deadStockList(IPage<WmsInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
String selByGoodsIdAndRackSid(@Param("goodsID") String goodsID,@Param("warehouseRackSid") String warehouseRackSid);
String selByGoodsIdAndRackSid(@Param("goodsID") String goodsID, @Param("warehouseRackSid") String warehouseRackSid);
BigDecimal compute(String skuSid);
List<WmsInventory> selCJByDeptSidAndRackSid(@Param("deptSid") String deptSid,@Param("rackSids") List<String> rackSids);
List<WmsInventory> selCJByDeptSidAndRackSid(@Param("deptSid") String deptSid, @Param("rackSids") List<String> rackSids);
List<WmsInventory> selCJByDeptSid(String deptSid);
IPage<InventoryStockListVo> inventoryStockList(IPage<WmsInventory> page, @Param(Constants.WRAPPER)QueryWrapper<WmsInventory> qw);
IPage<InventoryStockListVo> inventoryStockList(IPage<WmsInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
List<WmsInventory> selOaInventoryList(@Param("useOrgSid")String useOrgSid, @Param("warehouseTypeValue")String warehouseTypeValue);
List<WmsInventory> selOaInventoryList(@Param("useOrgSid") String useOrgSid, @Param("warehouseTypeValue") String warehouseTypeValue);
@Select("select count from wms_inventory where goodsID = #{goodsID}")
String selCountByGoodsID(String goodsID);
@Select("select * from wms_inventory where goodsID = #{goodsID} and useOrgSid = #{useOrgSid}")
List<WmsInventory> selByGoodsIDAndUseOrgSid(@Param("goodID") String goodID, @Param("useOrgSid") String useOrgSid);
@Select("select * from wms_inventory where goodsID = #{goodsID} and useOrgSid = #{useOrgSid} and warehouseSid = #{warehouseSid}")
List<WmsInventory> selByGoodsIDAndUseOrgSidAndWarehouseSid(@Param("goodID") String goodID, @Param("useOrgSid") String useOrgSid, @Param("warehouseSid") String warehouseSid);
@Select("select * from wms_inventory where goodsSpuSid = #{spuSid} and useOrgSid = #{useOrgSid}")
List<WmsInventory> selBySpuSidAndUseOrgSid(@Param("spuSid") String spuSid, @Param("useOrgSid") String useOrgSid);
List<WmsInventory> selBySpuSidAndUseOrgSidWarehouseSid(@Param("spuSid") String spuSid, @Param("useOrgSid") String useOrgSid, @Param("warehouseSid") String warehouseSid, @Param("sids") List<String> sids);
}

475
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml

@ -209,7 +209,9 @@
DATEDIFF(NOW(), w.firstInDate) as age
FROM wms_inventory as w,
( SELECT @rank := 0 ) t
<where>${ew.sqlSegment}</where>
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectInvenBySkuSid" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsGoodsInventoryVo">
@ -237,7 +239,7 @@
wi.cost as salesPrice
FROM wms_inventory wi
LEFT JOIN wms_warehouse_area wwa
ON wi.`warehouseRackSid` = wwa.`sid`
ON wi.warehouseRackSid = wwa.sid
<where>
${ew.sqlSegment}
</where>
@ -323,100 +325,95 @@
</where>
</select>
<select id="getListByGoodsID" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory">
select * from wms_inventory wi where wi.goodsID =#{goodsID} and wi.count > 0
select *
from wms_inventory wi
where wi.goodsID = #{goodsID}
and wi.count > 0
</select>
<select id="selGoodsListForScanRackTag"
resultType="com.yxt.wms.biz.inventory.wmsinventory.appH5.HouseRackListVo">
SELECT
wi.goodsID,
b.supplierName provider,
wi.goodsSpuName goodsName,
wi.goodsSkuCode numId,
wi.count num,
CONCAT( ( date_format ( wi.firstInDate, '%Y-%m-%d' )), ' (库龄)',( DATEDIFF( NOW(), wi.firstInDate )), '天' ) inboundTime
FROM
wms_inventory AS wi
LEFT JOIN wms_goods_tag AS t ON wi.goodsID = t.goodsID
LEFT JOIN wms_receipt_bill AS b ON t.billSid = b.sid
WHERE
wi.warehouseRackSid = #{houseRackSid}
SELECT wi.goodsID,
b.supplierName provider,
wi.goodsSpuName goodsName,
wi.goodsSkuCode numId,
wi.count num,
CONCAT((date_format(wi.firstInDate, '%Y-%m-%d')), ' (库龄)', (DATEDIFF(NOW(), wi.firstInDate)),
'天') inboundTime
FROM wms_inventory AS wi
LEFT JOIN wms_goods_tag AS t ON wi.goodsID = t.goodsID
LEFT JOIN wms_receipt_bill AS b ON t.billSid = b.sid
WHERE wi.warehouseRackSid = #{houseRackSid}
</select>
<select id="selGoodsH5Vo" resultType="com.yxt.wms.biz.inventory.wmsinventory.appH5.GoodsTagH5Vo">
SELECT
wi.goodsID,
b.supplierName provider,
wi.goodsSpuName goodsName,
wi.goodsSkuCode numId,
wi.unit,
wi.goodsSkuOwnSpec,
CONCAT( ( date_format ( wi.firstInDate, '%Y-%m-%d' )), ' (库龄)',( DATEDIFF( NOW(), wi.firstInDate )), '天' ) inboundTime
FROM
wms_inventory AS wi
LEFT JOIN wms_goods_tag AS t ON wi.goodsID = t.goodsID
LEFT JOIN wms_receipt_bill AS b ON t.billSid = b.sid
WHERE
wi.goodsID = #{goodsID}
ORDER BY
wi.firstInDate ASC
LIMIT 1
SELECT wi.goodsID,
b.supplierName provider,
wi.goodsSpuName goodsName,
wi.goodsSkuCode numId,
wi.unit,
wi.goodsSkuOwnSpec,
CONCAT((date_format(wi.firstInDate, '%Y-%m-%d')), ' (库龄)', (DATEDIFF(NOW(), wi.firstInDate)),
'天') inboundTime
FROM wms_inventory AS wi
LEFT JOIN wms_goods_tag AS t ON wi.goodsID = t.goodsID
LEFT JOIN wms_receipt_bill AS b ON t.billSid = b.sid
WHERE wi.goodsID = #{goodsID}
ORDER BY wi.firstInDate ASC LIMIT 1
</select>
<select id="selGoodsListForScanGoodsTag"
resultType="com.yxt.wms.biz.inventory.wmsinventory.appH5.GoodsListTagH5Vo">
SELECT
wi.count num,
r.rackCode houseAddress,
CONCAT( i.warehouseName, '-', a.areaName ) houseName
FROM
wms_inventory AS wi
LEFT JOIN wms_warehouse_info AS i ON wi.warehouseSid = i.sid
LEFT JOIN wms_warehouse_rack AS r ON wi.warehouseRackSid = r.sid
LEFT JOIN wms_warehouse_area AS a ON r.locationSid = a.sid
WHERE
wi.goodsID = #{goodsID}
SELECT wi.count num,
r.rackCode houseAddress,
CONCAT(i.warehouseName, '-', a.areaName) houseName
FROM wms_inventory AS wi
LEFT JOIN wms_warehouse_info AS i ON wi.warehouseSid = i.sid
LEFT JOIN wms_warehouse_rack AS r ON wi.warehouseRackSid = r.sid
LEFT JOIN wms_warehouse_area AS a ON r.locationSid = a.sid
WHERE wi.goodsID = #{goodsID}
</select>
<select id="selByDeptSid" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory">
SELECT wi.*
FROM wms_inventory wi
LEFT JOIN wms_warehouse_info wwi
ON wi.`warehouseSid` = wwi.`sid`
LEFT JOIN wms_warehouse_info wwi
ON wi.warehouseSid = wwi.sid
WHERE wi.count > 0
AND wwi.`useOrgSid` = #{deptSid}
AND wwi.useOrgSid = #{deptSid}
AND wwi.warehouseTypeKey = '01'
AND RIGHT(wi.`goodsID`,2) != '-O'
AND RIGHT (wi.goodsID
, 2) != '-O'
</select>
<select id="selByDeptSidAndRackSid" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory">
SELECT wi.*
FROM wms_inventory wi
LEFT JOIN wms_warehouse_info wwi
ON wi.`warehouseSid` = wwi.`sid`
LEFT JOIN wms_warehouse_info wwi
ON wi.warehouseSid = wwi.sid
WHERE wi.count > 0
AND wwi.`useOrgSid` = #{deptSid}
AND RIGHT(wi.`goodsID`,2) != '-O'
AND wwi.warehouseTypeKey = '01'
AND wi.warehouseRackSid in
<foreach item="rackSid" collection="rackSids" open="(" separator="," close=")">
AND wwi.useOrgSid = #{deptSid}
AND RIGHT(wi.goodsID,2) != '-O'
AND wwi.warehouseTypeKey = '01'
AND wi.warehouseRackSid in
<foreach item="rackSid" collection="rackSids" open="(" separator="," close=")">
#{rackSid}
</foreach>
</foreach>
</select>
<select id="selInvenGoodsByUseOrgSid"
resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventoryBillUseOrgSidVo">
SELECT
w.*,
w.supplierSid,
w.supplierName,
wa.sid AS warehouseAreaSid,
wa.`areaName` AS warehouseArea,
p.sid AS manufactorBillSid
w.*,
w.supplierSid,
w.supplierName,
wa.sid AS warehouseAreaSid,
wa.areaName AS warehouseArea,
p.sid AS manufactorBillSid
FROM wms_inventory w
LEFT JOIN yxt_pms.pms_purchase_bill p
ON w.manufactorBillNo = p.manufacturersOrderNumber
LEFT JOIN wms_warehouse_rack wr
ON w.`warehouseRackSid` = wr.`sid`
LEFT JOIN wms_warehouse_area wa
ON wr.`locationSid` = wa.`sid`
LEFT JOIN yxt_pms.pms_purchase_bill p
ON w.manufactorBillNo = p.manufacturersOrderNumber
LEFT JOIN wms_warehouse_rack wr
ON w.warehouseRackSid = wr.sid
LEFT JOIN wms_warehouse_area wa
ON wr.locationSid = wa.sid
<where>
${ew.sqlSegment}
</where>
@ -424,8 +421,8 @@
<select id="fittingsInventory" resultType="com.yxt.wms.biz.inventory.wmsinventory.FittingsInventoryVo">
SELECT * FROM (
SELECT
so.`name` useOrgName,
s.`name` deptName,
so.name useOrgName,
s.name deptName,
wi.goodsSpuName,
wi.goodsSkuCode,
wi.goodsSkuOwnSpec,
@ -446,23 +443,23 @@
</select>
<select id="appStorage" resultType="com.yxt.wms.biz.inventory.wmsinventory.appInventory.StorageListVo">
SELECT
i.count,
i.manufacturerName factory,
i.goodsID,
i.goodsSkuCode,
i.goodsSkuOwnSpec,
i.goodsSpuName,
DATEDIFF( NOW(), i.firstInDate ) inventoryAge,
i.cost price,
i.supplierName provider,
i.taxRate rate,
i.unit,
CONCAT(i.warehouseName, '-',a.areaName, '-',i.warehouseRackCode ) title
i.count,
i.manufacturerName factory,
i.goodsID,
i.goodsSkuCode,
i.goodsSkuOwnSpec,
i.goodsSpuName,
DATEDIFF( NOW(), i.firstInDate ) inventoryAge,
i.cost price,
i.supplierName provider,
i.taxRate rate,
i.unit,
CONCAT(i.warehouseName, '-',a.areaName, '-',i.warehouseRackCode ) title
FROM
wms_inventory AS i
LEFT JOIN wms_warehouse_rack as r ON i.warehouseRackSid = r.sid
LEFT JOIN wms_warehouse_area as a ON r.locationSid = a.sid
LEFT JOIN anrui_portal.sys_organization as s ON i.useOrgSid = s.sid
wms_inventory AS i
LEFT JOIN wms_warehouse_rack as r ON i.warehouseRackSid = r.sid
LEFT JOIN wms_warehouse_area as a ON r.locationSid = a.sid
LEFT JOIN anrui_portal.sys_organization as s ON i.useOrgSid = s.sid
<where>
${ew.sqlSegment}
</where>
@ -470,53 +467,53 @@
<select id="appOldStorage"
resultType="com.yxt.wms.biz.inventory.wmsinventory.appInventory.OldStorageListVo">
SELECT * FROM
(SELECT
e.*,
(
SELECT
CONCAT( v.vinNo, '/', v.vehMark )
FROM
yxt_4sas.as_busrepair_inventorybill_detail AS d
LEFT JOIN yxt_4sas.as_busrepair_inventorybill AS i ON d.billSid = i.sid
LEFT JOIN yxt_4sas.as_busrepair_bill_vech AS v ON i.sourceBillSid = v.billSid
WHERE
d.oldInventorySid = e.sid
LIMIT 1
) carCodeInfo,
(
SELECT
b.billNo
FROM
yxt_4sas.as_busrepair_inventorybill_detail AS d
LEFT JOIN yxt_4sas.as_busrepair_inventorybill AS i ON d.billSid = i.sid
LEFT JOIN yxt_4sas.as_busrepair_bill AS b ON i.sourceBillSid = b.sid
WHERE
d.oldInventorySid = e.sid
LIMIT 1
) repairId
FROM
(
SELECT
i.count,
i.manufacturerName factory,
i.goodsID,
i.goodsSkuCode,
i.goodsSkuOwnSpec,
i.goodsSpuName,
DATEDIFF( NOW(), i.firstInDate ) inventoryAge,
i.cost price,
i.unit,
CONCAT( i.warehouseName, '-', a.areaName, '-', i.warehouseRackCode ) title,
i.sid,
s.orgSidPath,
i.createBySid
FROM
wms_inventory AS i
LEFT JOIN wms_warehouse_rack AS r ON i.warehouseRackSid = r.sid
LEFT JOIN wms_warehouse_area AS a ON r.locationSid = a.sid
LEFT JOIN wms_warehouse_info AS w ON i.warehouseSid = w.sid
LEFT JOIN anrui_portal.sys_organization AS s ON i.useOrgSid = s.sid
) e) a
(SELECT
e.*,
(
SELECT
CONCAT( v.vinNo, '/', v.vehMark )
FROM
yxt_4sas.as_busrepair_inventorybill_detail AS d
LEFT JOIN yxt_4sas.as_busrepair_inventorybill AS i ON d.billSid = i.sid
LEFT JOIN yxt_4sas.as_busrepair_bill_vech AS v ON i.sourceBillSid = v.billSid
WHERE
d.oldInventorySid = e.sid
LIMIT 1
) carCodeInfo,
(
SELECT
b.billNo
FROM
yxt_4sas.as_busrepair_inventorybill_detail AS d
LEFT JOIN yxt_4sas.as_busrepair_inventorybill AS i ON d.billSid = i.sid
LEFT JOIN yxt_4sas.as_busrepair_bill AS b ON i.sourceBillSid = b.sid
WHERE
d.oldInventorySid = e.sid
LIMIT 1
) repairId
FROM
(
SELECT
i.count,
i.manufacturerName factory,
i.goodsID,
i.goodsSkuCode,
i.goodsSkuOwnSpec,
i.goodsSpuName,
DATEDIFF( NOW(), i.firstInDate ) inventoryAge,
i.cost price,
i.unit,
CONCAT( i.warehouseName, '-', a.areaName, '-', i.warehouseRackCode ) title,
i.sid,
s.orgSidPath,
i.createBySid
FROM
wms_inventory AS i
LEFT JOIN wms_warehouse_rack AS r ON i.warehouseRackSid = r.sid
LEFT JOIN wms_warehouse_area AS a ON r.locationSid = a.sid
LEFT JOIN wms_warehouse_info AS w ON i.warehouseSid = w.sid
LEFT JOIN anrui_portal.sys_organization AS s ON i.useOrgSid = s.sid
) e) a
<where>
${ew.sqlSegment}
</where>
@ -564,51 +561,49 @@
</select>
<select id="selBillNoAndCode" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventoryReturnFactSelectList">
SELECT
wi.goodsID,
wi.goodsSpuSid,
wi.goodsSpuName,
wi.goodsSkuSid,
wi.goodsSkuTitle,
wi.goodsSkuCode,
wi.goodsSkuOwnSpec,
wi.manufacturerSid,
wi.manufacturerName,
wi.unit,
wi.warehouseSid,
wi.warehouseName,
wa.sid AS warehouseAreaSid,
wa.areaName AS warehouseAreaName,
wi.warehouseRackSid,
wr.rackName AS warehouseRackName,
wi.count
FROM
wms_inventory wi
LEFT JOIN wms_warehouse_rack wr
ON wi.warehouseRackSid = wr.sid
LEFT JOIN wms_warehouse_area wa
ON wr.locationSid = wa.sid
LEFT JOIN yxt_4sas.as_busrepair_inventorybill_detail ad
ON wi.sid = ad.oldInventorySid
LEFT JOIN yxt_4sas.as_busrepair_inventorybill ai
ON ad.billSid = ai.sid
LEFT JOIN yxt_4sas.as_busrepair_bill ab
ON ai.sourceBillSid = ab.sid
LEFT JOIN yxt_4sas.as_busrepair_bill_vech av
ON ab.sid = av.billSid
SELECT wi.goodsID,
wi.goodsSpuSid,
wi.goodsSpuName,
wi.goodsSkuSid,
wi.goodsSkuTitle,
wi.goodsSkuCode,
wi.goodsSkuOwnSpec,
wi.manufacturerSid,
wi.manufacturerName,
wi.unit,
wi.warehouseSid,
wi.warehouseName,
wa.sid AS warehouseAreaSid,
wa.areaName AS warehouseAreaName,
wi.warehouseRackSid,
wr.rackName AS warehouseRackName,
wi.count
FROM wms_inventory wi
LEFT JOIN wms_warehouse_rack wr
ON wi.warehouseRackSid = wr.sid
LEFT JOIN wms_warehouse_area wa
ON wr.locationSid = wa.sid
LEFT JOIN yxt_4sas.as_busrepair_inventorybill_detail ad
ON wi.sid = ad.oldInventorySid
LEFT JOIN yxt_4sas.as_busrepair_inventorybill ai
ON ad.billSid = ai.sid
LEFT JOIN yxt_4sas.as_busrepair_bill ab
ON ai.sourceBillSid = ab.sid
LEFT JOIN yxt_4sas.as_busrepair_bill_vech av
ON ab.sid = av.billSid
WHERE ab.billNo = #{sourceBillNo}
AND wi.goodsSkuCode = #{goodsSkuCode}
AND wi.useOrgSid = #{deptSid}
AND wi.goodsSkuCode = #{goodsSkuCode}
AND wi.useOrgSid = #{deptSid}
</select>
<select id="selJJByDeptSidAndRackSid" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory">
SELECT wi.*
FROM wms_inventory wi
LEFT JOIN wms_warehouse_info wwi
ON wi.`warehouseSid` = wwi.`sid`
ON wi.warehouseSid = wwi.sid
WHERE wi.count > 0
AND wwi.`useOrgSid` = #{deptSid}
AND RIGHT(wi.`goodsID`,2) = '-O'
AND wwi.useOrgSid = #{deptSid}
AND RIGHT(wi.goodsID,2) = '-O'
AND wwi.warehouseTypeKey = '02'
AND wi.warehouseRackSid in
<foreach item="rackSid" collection="rackSids" open="(" separator="," close=")">
@ -619,15 +614,18 @@
<select id="selJJByDeptSid" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory">
SELECT wi.*
FROM wms_inventory wi
LEFT JOIN wms_warehouse_info wwi
ON wi.`warehouseSid` = wwi.`sid`
LEFT JOIN wms_warehouse_info wwi
ON wi.warehouseSid = wwi.sid
WHERE wi.count > 0
AND wwi.`useOrgSid` = #{deptSid}
AND wwi.useOrgSid = #{deptSid}
AND wwi.warehouseTypeKey = '02'
AND RIGHT(wi.`goodsID`,2) = '-O'
AND RIGHT (wi.goodsID
, 2) = '-O'
</select>
<select id="selbyGoodsId" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory">
SELECT * FROM wms_inventory WHERE goodsID =#{goodsID}
SELECT *
FROM wms_inventory
WHERE goodsID = #{goodsID}
</select>
<select id="otherOutGoodsListPage"
@ -656,55 +654,62 @@
</select>
<select id="deadStockList" resultType="com.yxt.wms.biz.inventory.wmsinventory.report.DeadStockVo">
SELECT * FROM
(SELECT
s.orgSidPath,
so.`name` useOrgName,
s.`name` deptName,
i.goodsSpuName,
i.goodsSkuCode,
i.manufacturerName,
i.supplierName,
IFNULL(SUM(`count`),0) `count`,
DATEDIFF(NOW(),(SELECT MIN(wi.firstInDate) FROM wms_inventory as wi WHERE wi.count > 0 and wi.useOrgSid = i.useOrgSid and wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid)) inventoryAge,
date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as wi on r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid and wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid and r.busTypeValue = '销售出库'),'%Y-%m-%d') salesTime,
DATEDIFF(NOW(),(date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as wi on r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid and wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid and r.busTypeValue = '销售出库'),'%Y-%m-%d'))) noSalesDays,
date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as wi on r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid and wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid and r.billType = '1'),'%Y-%m-%d') storageTime,
SUM(IFNULL(i.cost,0) * IFNULL(i.count,0)) totalCost,
FORMAT((SUM(IFNULL(i.cost,0) * IFNULL(i.count,0))/IFNULL(SUM(count),0)),2) avgPrice
FROM
wms_inventory as i
LEFT JOIN anrui_portal.sys_organization as s ON i.useOrgSid = s.sid
LEFT JOIN anrui_portal.sys_organization as so ON i.createOrgSid = so.sid
WHERE i.count > 0
GROUP BY i.goodsSkuSid,i.goodsSkuCode,i.useOrgSid,i.manufacturerSid,i.supplierSid) m
(SELECT
s.orgSidPath,
so.name useOrgName,
s.name deptName,
i.goodsSpuName,
i.goodsSkuCode,
i.manufacturerName,
i.supplierName,
IFNULL(SUM(count),0) count,
DATEDIFF(NOW(),(SELECT MIN(wi.firstInDate) FROM wms_inventory as wi WHERE wi.count > 0 and wi.useOrgSid =
i.useOrgSid and wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid =
i.supplierSid)) inventoryAge,
date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as wi on
r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid and wi.goodsSkuCode = i.goodsSkuCode and
wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid and r.busTypeValue =
'销售出库'),'%Y-%m-%d') salesTime,
DATEDIFF(NOW(),(date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as
wi on r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid and wi.goodsSkuCode = i.goodsSkuCode and
wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid and r.busTypeValue =
'销售出库'),'%Y-%m-%d'))) noSalesDays,
date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as wi on
r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid and wi.goodsSkuCode = i.goodsSkuCode and
wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid and r.billType = '1'),'%Y-%m-%d')
storageTime,
SUM(IFNULL(i.cost,0) * IFNULL(i.count,0)) totalCost,
FORMAT((SUM(IFNULL(i.cost,0) * IFNULL(i.count,0))/IFNULL(SUM(count),0)),2) avgPrice
FROM
wms_inventory as i
LEFT JOIN anrui_portal.sys_organization as s ON i.useOrgSid = s.sid
LEFT JOIN anrui_portal.sys_organization as so ON i.createOrgSid = so.sid
WHERE i.count > 0
GROUP BY i.goodsSkuSid,i.goodsSkuCode,i.useOrgSid,i.manufacturerSid,i.supplierSid) m
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selByGoodsIdAndRackSid" resultType="java.lang.String">
SELECT
sid
FROM
wms_inventory
SELECT sid
FROM wms_inventory
WHERE goodsID = #{goodsID}
AND warehouseRackSid = #{warehouseRackSid}
</select>
<select id="compute" resultType="java.math.BigDecimal">
SELECT
IFNULL(SUM(COUNT * cost) / SUM(COUNT), 0) AS total
FROM
wms_inventory
SELECT IFNULL(SUM(COUNT * cost) / SUM(COUNT), 0) AS total
FROM wms_inventory
WHERE goodsSkuSid = #{skuSid}
AND COUNT> 0
AND COUNT > 0
</select>
<select id="selCJByDeptSidAndRackSid" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory">
SELECT wi.*
FROM wms_inventory wi
LEFT JOIN wms_warehouse_info wwi
ON wi.`warehouseSid` = wwi.`sid`
ON wi.warehouseSid = wwi.sid
WHERE wi.count > 0
AND wwi.useOrgSid = #{deptSid}
AND wwi.warehouseTypeKey = '03'
@ -729,25 +734,36 @@
(SELECT
i.goodsID,
s.orgSidPath,
so.`name` useOrgName,
s.`name` deptName,
so.name useOrgName,
s.name deptName,
i.goodsSpuName,
i.goodsSkuCode,
i.goodsSkuOwnSpec,
i.unit,
IFNULL(SUM(`count`),0) `count`,
IFNULL(i.cost,0) `cost`,
SUM(IFNULL(i.cost,0) * IFNULL(i.count,0)) costTotal,
IFNULL(SUM(count),0) count,
IFNULL(i.cost,0) cost,
SUM(IFNULL(i.cost,0) * IFNULL(i.count,0)) costTotal,
(SELECT IFNULL(salesPrice,0) FROM yxt_base.base_goods_sku_extend as sku WHERE sku.sid = i.goodsSkuSid) price,
i.warehouseName,
wa.areaName wareAreaName,
i.warehouseRackCode,
i.manufacturerName,
i.supplierName,
(SELECT MIN(wi.firstInDate) FROM wms_inventory as wi WHERE wi.count > 0 and wi.useOrgSid = i.useOrgSid and wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid AND wi.warehouseRackCode = i.warehouseRackCode) firstInDate,
date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as wi on r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid AND wi.warehouseRackCode = i.warehouseRackCode and wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid and r.billType = '1'),'%Y-%m-%d') storageTime, -- 最近一次入库时间
date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as wi on r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid AND wi.warehouseRackCode = i.warehouseRackCode and wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid and r.busTypeValue = '销售出库'),'%Y-%m-%d') salesTime, -- 最近一次销售日期
DATEDIFF(NOW(),date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as wi on r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid AND wi.warehouseRackCode = i.warehouseRackCode and wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid and r.billType = '1'),'%Y-%m-%d')) inventoryAge,
(SELECT MIN(wi.firstInDate) FROM wms_inventory as wi WHERE wi.count > 0 and wi.useOrgSid = i.useOrgSid and
wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid
AND wi.warehouseRackCode = i.warehouseRackCode) firstInDate,
date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as wi on
r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid AND wi.warehouseRackCode = i.warehouseRackCode and
wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid
and r.billType = '1'),'%Y-%m-%d') storageTime, -- 最近一次入库时间
date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as wi on
r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid AND wi.warehouseRackCode = i.warehouseRackCode and
wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid
and r.busTypeValue = '销售出库'),'%Y-%m-%d') salesTime, -- 最近一次销售日期
DATEDIFF(NOW(),date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as
wi on r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid AND wi.warehouseRackCode = i.warehouseRackCode
and wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid =
i.supplierSid and r.billType = '1'),'%Y-%m-%d')) inventoryAge,
i.manufactorBillNo,
pb.payTypeValue procurementMethod,
pb.purchaseTypeValue,
@ -760,14 +776,35 @@
LEFT JOIN wms_warehouse_area as wa ON wa.sid = ra.locationSid
LEFT JOIN yxt_pms.pms_purchase_bill as pb ON pb.manufacturersOrderNumber = i.manufactorBillNo
WHERE i.count > 0
GROUP BY i.goodsID,i.goodsSkuSid,i.goodsSkuCode,i.useOrgSid,i.manufacturerSid,i.supplierSid,i.warehouseRackCode,i.manufactorBillNo) m
GROUP BY
i.goodsID,i.goodsSkuSid,i.goodsSkuCode,i.useOrgSid,i.manufacturerSid,i.supplierSid,i.warehouseRackCode,i.manufactorBillNo)
m
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selOaInventoryList" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory">
select wi.* from wms_inventory as wi
LEFT JOIN wms_warehouse_info wwi on wi.warehouseSid = wwi.sid
where wi.count > 0 and wi.useOrgSid =#{useOrgSid} and wwi.warehouseTypeValue =#{warehouseTypeValue}
select wi.*
from wms_inventory as wi
LEFT JOIN wms_warehouse_info wwi on wi.warehouseSid = wwi.sid
where wi.count > 0
and wi.useOrgSid = #{useOrgSid}
and wwi.warehouseTypeValue = #{warehouseTypeValue}
</select>
<select id="selBySpuSidAndUseOrgSidWarehouseSid" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory">
SELECT
*
FROM
wms_inventory
WHERE goodsSpuSid = #{spuSid}
AND useOrgSid = #{useOrgSid}
AND warehouseSid = #{warehouseSid}
<if test="sids != null and sids.size() != 0">
AND sid NOT IN
<foreach collection="sids" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</select>
</mapper>

101
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryService.java

@ -2,6 +2,7 @@ package com.yxt.wms.biz.inventory.wmsinventory;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
@ -12,10 +13,7 @@ import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.wms.biz.base.wmswarehouserack.WmsHouseInfoVo;
import com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRackService;
import com.yxt.wms.biz.inventory.wmsinventory.appH5.GoodsListTagH5Vo;
import com.yxt.wms.biz.inventory.wmsinventory.appH5.GoodsTagH5Vo;
import com.yxt.wms.biz.inventory.wmsinventory.appH5.HouseRackH5Vo;
import com.yxt.wms.biz.inventory.wmsinventory.appH5.HouseRackListVo;
import com.yxt.wms.biz.inventory.wmsinventory.appH5.*;
import com.yxt.wms.biz.inventory.wmsinventory.appInventory.*;
import com.yxt.wms.biz.inventory.wmsinventory.report.DeadStockQuery;
import com.yxt.wms.biz.inventory.wmsinventory.report.DeadStockVo;
@ -59,6 +57,7 @@ public class WmsInventoryService extends MybatisBaseService<WmsInventoryMapper,
private SysUserFeign sysUserFeign;
@Autowired
private BaseGoodsSkuExtendFeign baseGoodsSkuExtendFeign;
public PagerVo<WmsInventoryVo> listPage(PagerQuery<WmsInventoryQuery> pq) {
WmsInventoryQuery query = pq.getParams();
QueryWrapper<WmsInventory> qw = new QueryWrapper<>();
@ -739,6 +738,72 @@ public class WmsInventoryService extends MybatisBaseService<WmsInventoryMapper,
return vo;
}
public GoodsTwoVo goods2(GoodsTwoQuery query) {
GoodsTwoVo goodsTwoVo = new GoodsTwoVo();
String deptSid = "";
List<String> split = Arrays.asList(query.getOrgPath().split("/"));
if (split.size() > 1) {
//获取本级sid获取本级部门信息
SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData();
deptSid = sysOrganization1.getSid();
} else {
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData();
deptSid = sysOrganization.getSid();
}
if (StringUtils.isBlank(query.getStoreSid())) {
List<WmsInventory> wmsInventoryList = baseMapper.selBySpuSidAndUseOrgSid(query.getSid(), deptSid);
goodsTwoVo.setGoodsName(wmsInventoryList.get(0).getGoodsSkuTitle());
goodsTwoVo.setNumId(wmsInventoryList.get(0).getGoodsSkuCode());
goodsTwoVo.setProvider(wmsInventoryList.get(0).getSupplierName());
goodsTwoVo.setInboundTime(DateUtil.formatDate(wmsInventoryList.get(0).getFirstInDate()));
goodsTwoVo.setGoodsSkuOwnSpec(wmsInventoryList.get(0).getGoodsSkuOwnSpec());
goodsTwoVo.setUnit(wmsInventoryList.get(0).getUnit());
List<GoodsTwoListVo> list = new ArrayList<>();
for (WmsInventory wmsInventory : wmsInventoryList) {
GoodsTwoListVo goodsTwoListVo = new GoodsTwoListVo();
goodsTwoListVo.setSid(wmsInventory.getSid());
goodsTwoListVo.setGoodsName(wmsInventory.getGoodsSkuTitle());
goodsTwoListVo.setNumId(wmsInventory.getGoodsSkuCode());
goodsTwoListVo.setStore(wmsInventory.getWarehouseName());
goodsTwoListVo.setStoreSid(wmsInventory.getWarehouseSid());
goodsTwoListVo.setCount(wmsInventory.getCount().toString());
goodsTwoListVo.setMaxCount(wmsInventory.getCount().toString());
goodsTwoListVo.setHouseInfo("保内-" + wmsInventory.getWarehouseName() + " " + wmsInventory.getWarehouseRackCode());
if (wmsInventory.getCount().compareTo(BigDecimal.ONE) == 0) {
goodsTwoListVo.setForbid(true);
}
list.add(goodsTwoListVo);
}
goodsTwoVo.setList(list);
return goodsTwoVo;
}
List<WmsInventory> wmsInventoryList = baseMapper.selBySpuSidAndUseOrgSidWarehouseSid(query.getSid(), deptSid, query.getStoreSid(), query.getSids());
goodsTwoVo.setGoodsName(wmsInventoryList.get(0).getGoodsSkuTitle());
goodsTwoVo.setNumId(wmsInventoryList.get(0).getGoodsSkuCode());
goodsTwoVo.setProvider(wmsInventoryList.get(0).getSupplierName());
goodsTwoVo.setInboundTime(DateUtil.formatDate(wmsInventoryList.get(0).getFirstInDate()));
goodsTwoVo.setGoodsSkuOwnSpec(wmsInventoryList.get(0).getGoodsSkuOwnSpec());
goodsTwoVo.setUnit(wmsInventoryList.get(0).getUnit());
List<GoodsTwoListVo> list = new ArrayList<>();
for (WmsInventory wmsInventory : wmsInventoryList) {
GoodsTwoListVo goodsTwoListVo = new GoodsTwoListVo();
goodsTwoListVo.setSid(wmsInventory.getSid());
goodsTwoListVo.setGoodsName(wmsInventory.getGoodsSkuTitle());
goodsTwoListVo.setNumId(wmsInventory.getGoodsSkuCode());
goodsTwoListVo.setStore(wmsInventory.getWarehouseName());
goodsTwoListVo.setStoreSid(wmsInventory.getWarehouseSid());
goodsTwoListVo.setCount(wmsInventory.getCount().toString());
goodsTwoListVo.setMaxCount(wmsInventory.getCount().toString());
goodsTwoListVo.setHouseInfo("保内-" + wmsInventory.getWarehouseName() + " " + wmsInventory.getWarehouseRackCode());
if (wmsInventory.getCount().compareTo(BigDecimal.ONE) == 0) {
goodsTwoListVo.setForbid(true);
}
list.add(goodsTwoListVo);
}
goodsTwoVo.setList(list);
return goodsTwoVo;
}
public List<WmsInventory> selByDeptSid(String deptSid) {
return baseMapper.selByDeptSid(deptSid);
}
@ -1300,7 +1365,7 @@ public class WmsInventoryService extends MybatisBaseService<WmsInventoryMapper,
useOrgSid = sysOrganization.getSid();
}
}
List<WmsInventory> inventories = baseMapper.selOaInventoryList(useOrgSid,warehouseTypeValue);
List<WmsInventory> inventories = baseMapper.selOaInventoryList(useOrgSid, warehouseTypeValue);
if (!inventories.isEmpty()) {
for (WmsInventory d : inventories) {
FormCommon f = new FormCommon();
@ -1308,26 +1373,26 @@ public class WmsInventoryService extends MybatisBaseService<WmsInventoryMapper,
f.setDictValue(d.getGoodsSpuName());
Map<String, Object> extra = new HashMap<>();
if (null != d.getCount()) {
extra.put("count",d.getCount().toString());
extra.put("count", d.getCount().toString());
}
if (StringUtils.isNotBlank(d.getGoodsSkuOwnSpec())) {
extra.put("goodsSkuOwnSpec",d.getGoodsSkuOwnSpec());
extra.put("goodsSkuOwnSpec", d.getGoodsSkuOwnSpec());
}
if (StringUtils.isNotBlank(d.getGoodsSkuSid())) {
extra.put("goodsSkuSid",d.getGoodsSkuSid());
extra.put("goodsSkuSid", d.getGoodsSkuSid());
}
if (StringUtils.isNotBlank(d.getGoodsSpuSid())) {
extra.put("goodsSpuSid",d.getGoodsSpuSid());
extra.put("goodsSpuSid", d.getGoodsSpuSid());
}
if (StringUtils.isNotBlank(d.getUnit())) {
extra.put("unit",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);
extra.put("price", price);
} else {
extra.put("price","");
extra.put("price", "");
}
}
f.setExtra(extra);
@ -1342,4 +1407,16 @@ public class WmsInventoryService extends MybatisBaseService<WmsInventoryMapper,
String count = baseMapper.selCountByGoodsID(goodsID);
return rb.success().setData(count);
}
public ResultBean<List<WmsInventory>> selByGoodsIDAndUseOrgSid(String goodID, String useOrgSid) {
ResultBean rb = ResultBean.fireFail();
List<WmsInventory> wmsInventoryList = baseMapper.selByGoodsIDAndUseOrgSid(goodID, useOrgSid);
return rb.success().setData(wmsInventoryList);
}
public ResultBean<List<WmsInventory>> selByGoodsIDAndUseOrgSidAndWarehouseSid(String goodID, String useOrgSid, String warehouseSid) {
ResultBean rb = ResultBean.fireFail();
List<WmsInventory> wmsInventoryList = baseMapper.selByGoodsIDAndUseOrgSidAndWarehouseSid(goodID, useOrgSid, warehouseSid);
return rb.success().setData(wmsInventoryList);
}
}

48
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/appH5/GoodsTwoListVo.java

@ -0,0 +1,48 @@
package com.yxt.wms.biz.inventory.wmsinventory.appH5;
import lombok.Data;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/6/26 10:40
*/
@Data
public class GoodsTwoListVo {
private String sid;
/**
* 商品名称
*/
private String goodsName;
/**
* 图号
*/
private String numId;
/**
* 仓库
*/
private String store;
/**
* 仓库sid
*/
private String storeSid;
/**
* 可调数量
*/
private String count;
/**
* 最大可调数量
*/
private String maxCount;
/**
* 格式例保内-仓库 库位编码
*/
private String houseInfo;
/**
* 是否禁止修改(maxCount=1 true)
*/
private Boolean forbid = false;
}

28
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/appH5/GoodsTwoQuery.java

@ -0,0 +1,28 @@
package com.yxt.wms.biz.inventory.wmsinventory.appH5;
import lombok.Data;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/6/26 10:40
*/
@Data
public class GoodsTwoQuery {
private String orgPath;
/**
* 商品sid
*/
private String sid;
/**
* 需要去重的库存sid
*/
private List<String> sids;
/**
* 仓库sid
*/
private String storeSid;
}

41
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/appH5/GoodsTwoVo.java

@ -0,0 +1,41 @@
package com.yxt.wms.biz.inventory.wmsinventory.appH5;
import lombok.Data;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/6/26 10:40
*/
@Data
public class GoodsTwoVo {
/**
* 商品名称
*/
private String goodsName;
/**
* 图号
*/
private String numId;
/**
* 供应商
*/
private String provider;
/**
* 首次入库日期
*/
private String inboundTime;
/**
* 规格
*/
private String goodsSkuOwnSpec;
/**
* 计量单位
*/
private String unit;
private List<GoodsTwoListVo> list;
}
Loading…
Cancel
Save